计算机二级C语言测试题含答案.docx
- 文档编号:30261762
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:25
- 大小:35.43KB
计算机二级C语言测试题含答案.docx
《计算机二级C语言测试题含答案.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言测试题含答案.docx(25页珍藏版)》请在冰豆网上搜索。
计算机二级C语言测试题含答案
(第一章)
1.以下关于算法的描述不正确的是__________。
A.任何一个问题,它的实现算法是唯一的
B.描述算法常用的表达工具有流程图、N-S图、PAD图、伪码等
C.算法的最终实现是计算机程序
D.正确性和清晰易懂性是一个好算法的基本条件
2.下面是一个加法程序,指出存在的逻辑错误和语法错误。
/*求整数a和b的和*/
main()
{
inta,b;
a=8;
b=2000;
print("%d\n",a-b);
}
3.在每个C程序中都必须包含有这样一个函数,该函数的函数名为__________。
A.mainB.MAINC.nameD.function
4.以下叙述不正确的是__________。
A.C程序书写格式规定,一行内只能写一个语句
B.main()函数后面有一对花括号,花括号内的部分称为函数体
C.一个C程序必须有main()函数
D.C规定函数内的每个语句以分号结束
5.以下各标识符中,合法的用户标识符为_________。
A.A#CB.mysteryC.mainD.ab*
6.已知求解某问题的算法如下:
⑴输入a、b、c三个数。
⑵将a和b比较,较大者放在a中,小者放在b中。
⑶将a和c比较,较大者放在a中,小者放在c中。
⑷将b和c比较,较大者放在b中,小者放在c中。
⑸依次输出a、b、c。
请根据上述算法描述,把算法的功能表达出来。
【答案】把任意输入的三个数a、b、c按降序排列的顺序输出。
7.一个C语言程序可以包括多个函数,程序总是按照如下_________所描述的方式执行当前的程序。
A.从本程序的main()函数开始,到本程序文件的最后一个函数结束。
B.从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C.从main()函数开始,到main()函数结束。
D.从本程序文件的第一个函数开始,到本程序main()函数结束。
8.以下叙述正确的是_________。
A.在C程序中,main()函数必须位于程序的最前面。
B.C程序的每行中只能写一条语句。
C.在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
D.C语言本身没有输入输出语句。
答案:
1.A
2.语法错误是print,应该为printf;逻辑错误是a-b,应该为a+b。
3.A4.A5.B
6.把任意输入的三个数a、b、c按降序排列的顺序输出。
7.C8.D
C语言测试题(第二章)
1.C语言中的实数可以写成不同表示形式,下列表示形式中正确的是_________。
A.B.C.D.e6
2.下列程序执行后的结果是_________。
main()
{
intx='f';
printf("%c\n",'A'-'a'+x));
}
3.能正确表示数学描述中0≤a≤10的C语言表达式是________。
A.a>=0&a<=10 B.a>=0||a<=10
C.a>=0&&a<=10 D.0≤a&&a≤10
4.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是________。
A.-3B.9C.-12D.6
5.假设所有变量均为int型,则表达式(a=2,b=5,b+1,a+b)的值是________。
A.7B.8C.6D.2
6.执行下面程序段后,y的结果是________。
intx,y;
x=y=2;
x=x-2&&(y=y+1);
printf("%d",y);
A.3B.2C.1D.0
7.表达式(int)*2+8/3-3%2的值是_________。
A.2B.3C.4D.5
答案:
1.A
2.F
3.C
4.C
5.A
6.B
7.B
C语言测试题(第三章)
1.以下程序的输出结果是________。
main()
{
intk=8765;
printf("*%-06d*\n",k);
}
A.输出格式描述符不合法B.*008765*
C.*8765
*D.*-08765*
【答案】C.
2.有程序段如下:
inti;
floatf;
scanf("i=%d,f=%f",&i,&f);
若要求把数值100和分别赋给变量i和f,则正确的输入格式为________。
A.
B.i=100,f=
C.100,
D.i=100f=
【答案】B
3.有程序如下:
main()
{
inti;
floatx,y;
scanf("%2d%f%*d%f",&i,&x,&y);
printf("%d,%f,%f\n",i,x,y);
}
执行该程序时,若按如下形式输入数据,则输出结果是________。
输入数据:
34
45
A.56,,B.56789,,
C.56,,D.56,,
【答案】A
4.输入字母a时,下列程序的执行结果是________。
#include""
main()
{
charch;
ch=getchar();
(ch>='a'&&ch<='z')putchar(ch+'A'-'a'):
putchar(ch);
}
【答案】输出大写字母A
C语言测试题(第四章)
1.下面是由if构成的一个程序段:
if(a
{
if(d==c)
x=1;
}
else
x=2;
该程序段所表示的逻辑关系对应的表达式是________。
A.
B.
C.
D.
2.以下程序的运行结果为________。
main()
{
intx=2,y=-1,z=2;
if(x if(y<0)z=0;/*第二个if*/ elsez+=1; printf("%d\n",z); } A.3B.2C.1D.0 3.有程序段如下: inta=1,b=2,c=3; if(a>b) c=a;a=b;b=c; 执行该程序段后,变量a、b、c的值是__________。 A.a=1,b=2,c=3B.a=2,b=3,c=3 C.a=2,b=3,c=1D.a=2,b=3,c=2 4.有程序如下: #include"" main() { intc; while((c=getchar())! ='\n') switch(c-'2') { case0: case1: putchar(c+4); case2: putchar(c+4);break; case3: putchar(c+3); default: putchar(c+2);break; } printf("\n"); } 若运行该程序时,按如下形式从键盘输入数据,则程序的运行结果为________。 输入数据: 2473 A.668977B.668966 C.D.6688766 5.执行下面的程序段后,a和b的值分别为________。 inta=3,b=5,c; c=(a>--b)a++: b--; A.3,2B.3,3C.4,4D.4,5 答案: 1.D 2.B 3.B 4.A 5.B C语言测试题(第五章) 1.有程序段如下: intk=10; while(k=0) k=k-1; 则下面描述中正确的是________。 A.语句“k=k-1;”被执行10次 B.语句“k=k-1;”被执行无限多次 C.语句“k=k-1;”一次也不执行 D.语句“k=k-1;”只执行一次 2.有程序段如下: intk=10; do { k=k-1; }while(k>=0); 则下面描述中正确的是________。 A.语句“k=k-1;”执行1次 B.语句“k=k-1;”执行10次 C.语句“k=k-1;”执行11次 D.语句“k=k-1;”执行12次 3.下面是一个程序段: intx,y; for(y=1,x=2;y<=50;y++) { if(x>=10)break; x+=5; } 执行该程序段后,x值为________。 A.2B.7C.12D.15 4.有程序段如下: inti,j; for(i=5;i;i--) for(j=1;j<5;j++) { ...... } 假若内循环体内不存在中止循环的控制语句,则内循环体执行的总次数为________。 A.20B.24C.25D.30 5.下面是一个循环控制程序: #include"" #include"" main() { floatx,y,z; scanf("%f,%f",&x,&y); z=x/y; while (1) { if(fabs(z)> { x=y; y=z; z=x/y; } else break; } printf("%\n",y); } 运行该程序,按如下形式从键盘输入数据,程序的数出结果是________。 键盘输入数据: A.B.C.D. 答案: 1.C2.C3.C4.A5.B C语言测试题(第六章) 1.若有数组定义intm[][2]={1,3,5,7,9},则以下叙述正确的是________。 A.该定义存在语法错误 B.该定义等价于intm[3][2]={1,3,5,7,9} C.该定义等价于intm[][2]={{1,3,5},{7,9}} D.该定义等价于intm[2][2]={1,3,5,7,9} 2.对两个数组a和b进行如下的初始化: chara[]={'a','b','c','d','e','f'}; charb[]="abcdef"; 则以下叙述正确的是________。 A.a数组与b数组完全相同 B.a数组与b数组具有相同的长度 C.a数组和b数组的最后一个字符都是字符串结束标志符'\0' D.a数组的长度比b数组的长度小 3.下面程序的功能是输出数组s中最大元素的下标。 请在横线上填上适当的内容,使它能得出正确的结果。 main() { intk,p,s[]={1,-9,7,2,-10,3}; for(p=0,k=p;p<6;p++) if(s[p]>s[k])____________; printf("%d\n",k); } 4.下面程序的功能是将一字符串中的小写英文字母全部改成大写形式,然后输出。 请在横线上填上适当的程序代码,使它能输出正确的结果。 #include"" main() { inti=0; charstr[80]; scanf("%s",str); while(①) { if(②)str[i]=str[i]-32; ③; } printf("%s\n",str); } 5.下面程序的功能是将一个字符串str的内容颠倒过来。 请在横线上填上适当的内容,使它能输出正确的结果。 #include"" main() { inti,j,①; charstr[]="abcdefghijk"; j=strlen(str)②; for(i=0;i { k=str[i]; str[i]=str[j]; str[j]=k; } printf("%s\n",str); } 答案: 1.B 2.D 3.k=p 4.①str[i]! ='\0'或简写成str[i] ②str[i]>='a'&&str[i]<='z' ③i++或++i或i=i+1或i+=1 5.①k②-1。 C语言测试题(第七章) 1.以下代码用来对函数进行定义,正确的函数形式是________。 A.doublefun(intx,inty) {z=x+y;return(z);} B.fun(intx,y) {intz; returnz;} C.doublefun(intx,inty) {doublez; z=x+y;returnz;} D.fun(x,y) {intx,y;doublez; z=x+y;returnz;} 2.有下列函数调用语句,函数fun1()的实参个数是________。 fun1(a+b,(y=9,y*x),fun2(y,n,k)); 3.下列函数调用错误的是________。 A.max(a,b)B.ax(3,a+b) C.max(3,5)D.floatmax(c,5) 4.在C程序中,下面描述正确的是________。 A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数调用都可以嵌套 D.函数的定义和调用都不可以嵌套 5.下列关于参数的说法正确的是________。 A.实参和与其对应的形参各占用独立的存储单元 B.实参和与其对应的形参共用一个存储单元 C.形参是虚拟的,不占用存储单元 D.只有当实参和与其对应的形参同名时才共用存储单元 答案: 1.C 2.A 3.D 4.B 5.A C语言测试题(第八章) 1.有如下定义: intk=2; int*ptr1=&k,*ptr2=&k; 下面不能正确执行的赋值语句是________。 A.k=*ptr1+*ptr2;B.ptr2=k; C.ptr1=ptr2;D.k=*ptr1*(*ptr2); 2.若有如下定义: chars[20],*ps=s; 则,以下赋值语句正确的是________。 A.s=ps+s;B.ps=ps+20;C.s[5]=ps[9];D.ps=s[0]; 3.以下程序的运行结果是________。 main() { staticintarr[]={6,7,8,9}; inti; for(i=0;i<4;i++) printf("%d",*(arr+i)); } 4.以下程序的输出结果是________。 main() { char*s[]={"one","two","three"},*p; p=s[1]; printf("%c,%s\n",*(p+1),s[0]); } A.n,twoB.t,oneC.w,oneD.o,two 5.以下程序运行时,若输入数据为17 18 19,则程序的输出结果为________。 #incliude"" voidrcircle(int*p1,int*p2,int*p3); voidmain() { inta,b,c; int*p1,*p2,*p3; printf("Enterthreeintegers: "); scanf("%d%d%d",&a,&b,&c); p1=&a;p2=&b;p3=&c; rcircle(p1,p2,p3); printf("%5d%5d%5d\n",a,b,c); } voidrcircle(int*pr1,int*pr2,int*pr3) { inttemp; temp=*pr3;*pr3=*pr2;*pr2=*pr1;*pr1=temp; } 答案: 1.B 2.C 3.6789 4.C 5.191718 C语言测试题(第九章) 1.关于结构体类型的定义,下列描述正确的是________。 A.定义结构体类型时,系统会根据各个成员的大小为其分配内存空间。 B.定义结构体类型时,系统会根据最大成员的大小为其分配内存空间。 C.定义结构体类型时,不会产生内存分配。 D.以上说法都不对。 2.以下各项用于定义结构体类型,并定义结构体变量,其中正确的是________。 A.structstudentB.structstudentstu1,stu2; {charnum[5];structstudent intscore;{charnum[5]; };intscore; studentstu1,stu2;}; C.structstudentD.structstudent {charnum[5];{charnum[5]; intscore=96;intscore; };}; structstudentstu1,stu2;structstudentstu1,stu2; 3.以下形式定义了结构体变量member,对其成员name的引用有多种形式。 在下面的引用形式中,错误的是________。 struct { charname[10]; intage; }member,*p; A.B.name C.p->nameD.(*p).name 4.下面的程序运行后的输出结果为________。 structstu {intnum; charname[10]; intage; }; voidfun(structstu*p) { printf("%s\n",(*p).name); } main() { structstustudents[3]={{9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18}}; fun(students+1); } 5.有程序如下: #include"" structdate { intyear,month,day; }today; voidmain() { printf("%d,%d\n",sizeof(structdate),sizeof(today)); } 该程序执行后输出的结果是________。 A.2,2B.6,2C.6,6D.2,6 答案: 1.C 2.D 3.B 4.Wang 5.C C语言测试题(第十章) 1.已知fp为文件类型指针,若要打开e盘text文件夹(目录)下的文件,下面各选项中正确的是________。 A.fp=fopen(e: text\,"r")B.fp=fopen(e: \text\,"r") C.fp=fopen("e: \text\","r")D.fp=fopen("e: \\text\\","r") 2.使用fclose(fp)函数正常关闭fp文件后,函数fclose()的返回值是________。 A.1B.0C.–1D.非零值 3.函数调用fseek(fp,-20L,2)的含义是________。 A.将文件位置指针移到距离文件头20个字节处 B.将文件位置指针从当前位置向后移动20个字节 C.将文件位置指针从文件末尾处向文件头方向移动20个字节 D.将文件位置指针移到离当前位置20个字节处 4.有如下定义: structstua[20]; FILE*fp; 设文件中以二进制文件格式存放了5个班的学生数据,且文件已打开,fp指向文件头。 若要从文件中读出20个学生的数据放入a数组中,以下语句不正确的是_________。 A.for(i=0;i<20;i++)fread(&a[i],sizeof(structstu),1L,fp); B.for(i=0;i<20;i++)fread(a+i;sizeof(structstu),1L,fp); C.fread(a,sizeof(structstu),20L,fp); D.for(i=0: i<20;i++)fread(a[i],sizeof(structstu),1L,fp); 答案: 1.D 2.B 3.C 4.D C语言测试题(第十一章) 1.以下程序的运行结果是_________。 #defineN4 #defineMN+2 #defineKM*M/2 main() { inti; i=N+M+K; printf("%d\n",i); } 2.以下程序的输出结果是________。 #defineT(x,y)(x)<(y)(x): (y) main() { inti,j,k; i=10,j=15,k=10*T(i,j); printf("%d\n",k); } A.15B.100C.10D.150 3.在下面的宏定义中,能将宏调用M(a+b)展开为(a+b)*(a+b)的宏定义是________。 A.M(x) x*xB.M (x) (x)*(x) C.M(x) (x)*(x)D.A,B,C都可以 4.以下程序的执行结果是________。 #include"" #definePI #defineR5 #defineK1 main() { #ifK printf("%",2*PI*R); #else printf("%",PI*R*R); #endif } A.B.C.D. 5.在下面程序的横线位置填上合适的代码,使程序能够正常运行。 typedefstruct { chartitle[20]; floatprice; }BOOK; main() { ___________; scanf("%s%f",,&; printf("Title: %sprice: %\n",,; } 答案: 1.232.A3.C4.C5.BOOKvariable C语言测试题(第十二章) 1.C++对C语言作了很多改进,下列描述中________使得C语言发生了质变,从面向过程变成了面向对象。 A.C++增加了一些新的运算符。 B.C++允许函数重载,并允许设置缺省参数。 C.C++允许在使用变量之前的任何位置对变量进行说明。 D.C++引进了类和对象的概念。 2.下列描述中,错误的是________。 A.C++的内联函数主要解决程序的运行效率问题。 B.C++的内联函数通常用于处理比较复杂的问题。 C.C++内联函数中可以包括各种语句。 D.除需要使用inline关键字说明外,内联函数与其它函数的定义没有区别。 3.C++中,以下对函数参数默认值设置正确的是________。 A.intsum(inta=20,intb,intc=10);B.intsum(inta,intb=20,intc=10); C.intsum(in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 语言 测试 答案