重庆市计算机等级考试C语言二级考试试题及答案.docx
- 文档编号:7100183
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:51
- 大小:330.87KB
重庆市计算机等级考试C语言二级考试试题及答案.docx
《重庆市计算机等级考试C语言二级考试试题及答案.docx》由会员分享,可在线阅读,更多相关《重庆市计算机等级考试C语言二级考试试题及答案.docx(51页珍藏版)》请在冰豆网上搜索。
重庆市计算机等级考试C语言二级考试试题及答案
二级C语言笔试试卷(2007年4月)1
二级C语言笔试试卷参考答案(2007年4月)7
二级C语言笔试试卷(2007年11月)8
二级C语言笔试试卷参考答案(2007年11月)16
二级C语言笔试试卷(2008年4月)18
二级C语言笔试试卷参考答案(2008年4月)24
二级C语言笔试试卷(2008年11月)26
二级C语言笔试试卷参考答案(2008年11月)32
二级C语言笔试试卷(A)
2007年4月
注意事项:
1.一、二题为客观题,请将答案涂在机读答题卡上
2.三、四、五、六题为主观题,请将答案做在答题纸上
、单项选择题。
(每小题1分,共20分)
1•在C程序的函数调用时,主调函数中的实参和被调函数中的形参(
(A)个数、次序必须相同,但数据类型可以不考虑
(B)个数、次序和对应参数的数据类型都应该相同
(C)个数、次序和数据类型均可以不相同
(D)对应参数数据类型应相同,但个数和次序可以不考虑
2.如a为int型,则与表达式a等价的C语言关系表达式是()
(D)a<0
的循环次数是()
(D)无数多次
)。
(A)a>0(B)a!
=0(C)a==0
3.循环语句for(a=0,b=0;(b!
=45)||(a<5);a++);
(A)4(B)3(C)5
4.设有字符数组a,则正确的输入语句是(
5.enumcolor{red,green,yellow=5,white,blac
k};
定义了一枚举类型。
配的枚举值依次为()。
(A)1、2、3、4、5
(B)
0、1、
5、2、
3
(C)0、1、5、6、7
(D)
3、4、
5、6、
7
6.运行完下列程序后,在屏幕上的内容是(
)。
(A)gets('a');
(B)scanf("%c",a);
(C)scanf("%s",a);
(D)gets("a");
编译程序为值表中各标识符分
voidmain()
{inta=0;a+=(a=12);printf("%d\n",a);
}
(A)0(B)6(C)12(D)24
7.若x,y为实数类型的变量,要判断x,y相等,最好使用下列关系表达式
15.若有定义inta,b,x;且变量都已正确赋值,下面选项中合法的if语句是(
(A)if(a==b)x++;(B)if(a=
(C)if(a<>b)x++;(D)if(a=>b)x++;
16.执行下面的程序后,变量a的值是(
#include
#defineSQR(X)X*X
inta=10,k=2,m=3;a/=SQR(m)/SQR(k);printf("%d\n",a);
voidmain()
{
}
(A)10(B)1(C)5
17.若变量t为double类型,表达式(t=1,t+5,t)
(A)1(B)6.0(C)1.0
18.
在C语言中,下面关于数组的描述中正确的是
二、基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项并将其号码填入各小题的空白
处。
每空2分,共10分
1•在C语言中,函数一般由两个部分组成,它们是函数首部和①。
2•任何程序都可调用标准函数exit(),当它被调用时就②程序的执行。
3•—个C语言程序在可以被执行之前,需要经过的4个处理程序是:
编辑程序、预处理程序、编译程序
和③。
4•在C语言中无固有的输入和输出语句,但是用C语言编写的程序可以用函数调用的形式来实现输入、
输出,这些函数由④提供。
5.C标准库函数rewind的作用是⑤。
备选项:
(A)主函数
(B)函数体
(C)函数首部
(D)用户自定义函数
(E)终止
(F)使读与指针指向文件的开头
(G)标准I/O库/系统
(H)连接程序
(J)判断文件指针是否指向文件末尾
三、程序填空题。
(每空2分,共20分)。
1.下面程序的功能是从键盘上输入一行字符,将其中的小写字母转换为大写字母后输出。
请填空完善程序。
#inelude
voidmain()
{charc;
while((c=\n')
if(c>='a'&&c<='z')printf("%c",c-32);
}
2.下面程序的功能是从当前目录下的文本文件“f1.txt”中读取前10个字符,依次显示在屏幕上;如果
文本文件中不足10个字符,则读完为止;请填空完善程序。
#include
voidmain()
{FILE*fp;
inti;
charc;
if(②==NULL)
{printf("Can'topenthisfile!
\n”);
return;
}
for(i=0;i<10;i++)
{if(feof(fp))
break;
c=fgetc(fp);putchar(c);
}
fclose(fp);
}
3.下面程序的功能是输出数组中的各字符串,请填空完成程序。
#include
voidmain()
{char*a[]={"abcd","12345","efghijk","67890"};
char③;
intj=0;
p=a;
for(;j<4;j++)
④;
}
4.下面函数mfc用于求取两个正整数的最大公因子,请填空完善函数。
intmcf(inta,intb)
{inttemp;
while(b)
{temp=⑤;
a=b;
b=temp;
}
returna;
}
5.下面程序的功能是将字符串str的内容颠倒过来并输出,请填空完善程序。
#inelude
voidmain()
{charstr[]={"abcdefg"},*p1,*p2,ch;
p1=p2=str;
while(*p2!
='\0')
p2++;
⑥;
while(p1 {ch=*p1,*p^*p2,*p2=ch; ⑦; p2--; } puts(str); } 6.下面函数yh的功能是构成一个杨辉三角形,请填空完成该函数。 #include #defineN11 voidyh(inta[][N]) {intj,k; for(j=1;j {a[j][1]=1; a[j][j]=⑧; } for(⑨;j for(k=2;k a[j][k]=⑩+a[j-1][k]; } 四、阅读程序题(每小题5分,共30分 1.下面程序的输出结果是()。 #include voidmain() {voidfun(int*k); intw=5; fun(&w); } voidfun(int*k) {(*k)++; printf("%d\n",*k++); } 2.下面程序的输出结果是()。 #include voidmain() {charch[2][5]={"1234","5678"},*p[2]; intj,k,s=0; for(k=0;k<2;k++) p[k]=ch[k]; for(k=0;k<2;k++)for(j=0;p[k][j]>'0'&&p[k][j]<='9';j+=2)s=1O*s+p[k][j]-'O'; printf("s=%d\n",s); } 3.下面程序的输出结果是()。 #include intfunc(int,int); voidmain() {intk=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p); } intfunc(inta,intb) {staticintm=1,n=2; n+=m+1; m=n+a+b;returnm; } 4.下面程序的输出结果是()。 #include voidmain() {inta[10]={1,2,3,4,5,6,7,8,9,10},k,s,i;doubleave; for(k=s=i=0;i<10;i++) {if(a[i]%2) continue;s+=a[i];k++; }if(k! =0) {ave=s/k; printf("%d,%f\n",k,ave); } ,则输出结果是()。 } 5.在下列程序中,若输入为: todayisMonday! #include {chars[40],c,*str=s; intnum=0,word=0;gets(str); while((c=*str++)! ='\0') {if(c=='') word=0; elseif(word==0) {word=1; num++; } }printf("%dwords\n",num); } 6.下列程序的输出结果是()。 #include unsignedf(unsignednum) {unsignedk=1; do {k*=num%10; num/=10; }while(num);returnk; } voidmain() {intx=35,y=550; printf("%d,%d\n",f(x),f(y)); } 五、编程序。 (每小题10分,共20分) 1.函数delspace的功能是删除一个字符串中所有的空格。 例如,输入字符串为"Thisisastring",则 输出结果为"Thisisastring"。 测试用主函数如下所示,请编制函数delspace。 #include #include voidmain() {char*delspace(char*str); chars[81],*ds; gets(s); ds=delspace(s); printf("\nResult: %s\n",ds); } 2.已知两个3位数abc和cba之和为1333(即abc+cba=1333),编程序求出3个数字a、b和c。 二级C语言笔试试卷(A)参考答案 (2007年4月) 、单项选择题。 (每小题1分,共20分) BBDCCDCCCDAAACABCCBD 4.5,6.0000005.3words6.15,0 五、编程序。 (每小题10分,共20分) 1.参考程序及评分标准 char*delspace(char*str) {char*p=str;〃2分 while(*p) {if(*p=='') strcpy(p,p+1); else p++; }〃6分 returnstr;〃2分 } 2.参考程序及评分标准 //参考程序一一 #include voidmain() {intn,a,b,c;〃2分 for(n=100;*1000;n++) {a=n/100; b=n/10%10; c=n%10;if(a*100+b*10+c+c*100+b*10+a==1333) printf("abcis: %d%d%d\n",a,b,c); } }//8分 //参考程序二 #include voidmain() {intn,m,a,b,c;//2分 for(a=1;a<10;a++) for(b=0;b<10;b++)for(c=0;c<10;c++){n=a*100+b*10+c; m=c*100+b*10+a; if(n+m==1333) printf("abcis: %d%d%d\n",a,b,c); } //8分 二级C语言笔试试卷(A) 2007年11月 注意事项: 1.一题为客观题,请将答案涂在机读答题卡上 2.请将二、三、四、五题的答案做在答题纸上 一.单项选择题。 (每小题1分,共20分) 1.一个C程序的执行是从()。 (A)本程序的main函数开始 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 (C)本程序的main函数开始,到本程序文件的最后一个函数结束 (D)本程序文件的第一个函数开始,到本程序main函数结束 2.设有C语句: intx=3,y=4,z=5;,则下面表达式中值为0的是()。 (A)x&&y(B)x<=y (C)x||y+z&&y-z(D)! ((x z||1)) 3.以下有关宏替换的叙述不正确的是()。 (A)宏替换不占用运行时间(B)宏名无类型 (C)宏替换只是字符串替换;(D)宏替换是在运行时进行的 4.在标准库函数的调用形式"fread(buffer,size,count,fp);”中,参数buffer代表的是()。 (A)一个整型变量,代表要读入的数据总数 (B)一个文件指针,指向要读的文件 (C)一个指针,指向读入数据存放的首地址 (D)—个存储区,存放要读的数据项 5.位运算中,操作数每左移一位,在没有溢出的情况下其结果相当于( ) (A)操作数乘以2 (B)操作数除以2 (C)操作数除以4 (D) 操作数乘以4 6.下面程序运行后,变量m的值为( )。 #include voidmain() {intm,n,k; m=(n=4)+(k=10-7);printf(”m=%d\n”,m); } (A)4(B)3 (C)7 (D)14 7.下面程序运行结果(或出现的情况)是()。 #include voidmain() {intx=3,y=0,z=0; if(x=y+z) printf(”****"); else printf("####\n"); } (A)有语法错误不能通过编译 (B)输出: **** (C)可以通过编译,但不能通过连接,因而不能运行 (D) switch(i) {case9: i+=1; case10: case11: i-=1; default: i+=1; } (D)9 (D)a=b+c=1; (A)10(B)11(C)12 13.在下列选项中,不正确的赋值语句是()。 (A)t/=5;(B)n1=(n2=(n3=0));(C)k=i==j; 14.下面C程序运行后变量x的值是()。 #include voidmain() {inta,b,c,x;a=b=c=0;x=35;if(! a) x--; elseif(b) if(c) x=3; else x=4; printf(”%d\n",x); } (A)34(B)4(C)35(D)3 15.设有以下宏定义: #defineN3 #defineY(n)(N+1*n) 则执行语句: z=2*(N*Y(5+1));后,z的值为()。 (A)30(B)72(C)48(D)54 16.在以下的四个运算符中,优先级最低的运算符是()。 (A)<=(B)/(C)! =(D)&& 17.已知’E'的ASCII码是69,则执行下面C语句的结果是()。 printf("%c",'D'-'8'+'5'); (A)66(B)A(C)B(D)E 18.设有以下语句: inta=3,b=6,c;c=aAb<<2;执行后c的低8位二进制值是()。 (A)00011011(B)00010100(C)00011100(D)00011000 19.在C语言中,以下叙述错误的是()。 (A)函数被调用时,系统才为形参分配内存 (B)实参和对应形参的数据类型必须一致 (C)实参可以是变量、常量或表达式 (D)形参可以是变量、常量或表达式 20.字符串常量"abc\nt\012\xa1*2"在内存中所占的存储空间节数是()。 (A)11(B)13(C)15(D)18 二•基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项,并讲其号码填入各小题的空白处。 每空2分,共10分) 1.函数首部intmain(intargc,char*argv[])中argc表示的是①。 2.C语言能处理的文件类型可以是文本文件和②~。 3.下面语句定义了共用体(联合体)变量a,则a占用③—个字节。 uniondata{shortinti;charc;doubled;}a; 4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与④组成配对关系。 5.宏定义中的宏名不能包含⑤。 备选项: (A)空格 (B)二进制文件 (C)数字 (D)在其之前未配对的if (E)参数字符串 (F)命令行参数的个数 (G)11 (H)在其之前最近的未配对的if (J)8 (K)在定义该函数时所指定的数据类型 (L)下划线 (M)程序文件 3.程序填空题(每空2分,共20分) 1.下面程序的功能是: 从键盘上输入若干个学生的成绩(用负数结束输入过程),统计计算出平均成绩; 请填空完成程序。 #include voidmain() {floatsum=0.0,ave,a; intn=0; printf("Entermark'n"); seanf("%f",&a); while(a>=0.0) {sum=sum+a; 1; scanf("%f",&a); } ave=sum/n; printf("ave=%f\n",ave); } 2.下面程序的功能是将一个字符串str的内容颠倒并输出,请填空完成程序。 #include voidmain() {charstr[]={"abcdefg"}; char*p1,*p2,ch; p1=str; p2=str; while(*p2! =z\0z) p2++ 2; while(p1 {ch=*p1,*p1=*p2,*p2=ch; 3; p2--; } puts(str); } 3.下面程序从终端输入一行字符串存入字符数组,然后输出;请填空完成程序。 #include voidmain() {charstr[80],*sp; intn; for(n=0;n<80;n++) {str[n]=④; if(str[n]==/\n/) break; } str[n]=/\0/; sp=str; while(*sp) putchar(⑤); } 4. 0值,否则返回两个字符串中 下面函数fun的功能是比较两个字符串的大小,若两字符串相同则返回第一个不相同字符之差;请填空完成函数。 #include intfun(char*s,char*t) {while(*t++==*s++&&*t! =/\0/&&*s! =z\0/) 5 return(⑥); } voidmain() {charstr1[80],str2[80]; gets(strl); gets(str2); printf("%d\n",fun(str1,str2)); } 5.下面程序的功能是统计字符串中大小写字母的个数,请填空完成程序。 #include #defineIA(x)⑦ voidmain() {charstr[80],*s,ch; intcount=0; gets(str); s=str; while(*s) {ch=*s++; if(IA(ch))count++; } printf("thesumis%d\n",count); } 6. x添 1; 下面函数在一维数组v中将x插入到下标为i(i>=0)的元素前,如果i大于等于元素的个数,则 加到v数组原数据的末尾。 V数组原有元素个数保存在指针n所指向的变量中,插入后元素个数加 请填空完成程序。 #include voidinsline(double[],int*n,doublex,int,i) {intj; if(⑧) for(j=*n-1;⑨;j--) ⑩=vj else i=*n; v[i]=x; (*n)++; } voidmain() {doubles[10]={11,23,65,78},x; intm=4,*p=&m,k; x=99; scanf("%d',&k); insline(s,p,x,k); for(k=0;k putchar('\n'); 4.阅读程序题(每小题5分,共30分) 1.写出下面程序的运行结果。 #include intf(intnum,intrun) {strticintfact,i; if(run==O) {fact=1; i=1; } fact*=i; if(++i<=num) f(num,1); return(fact); } voidmain() {inti=0; printf("f=%d\n",f(3,0)); } 2.写出下面程序的运行结果。 #include voidmain() {inta,b; for(a=1,b=1;a<=100;a++) {if(b>=20) break; if(b%3==1)b+=3; continue; } b-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 重庆市 计算机等级考试 语言 二级 考试 试题 答案