《C语言最终模拟题(含答案)(84页).doc》由会员分享,可在线阅读,更多相关《C语言最终模拟题(含答案)(84页).doc(88页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-题号1.以下选项中,能用作用户标识符的是( C)。A:voidB:8_8C:_0_D:unsigned题号2.选择题A:( 1分,正确答案 A,学生答案 * )阅读以下程序#include main()int case; float printF;printf (请输入 2 个数:);scanf (%d %f, &case, &printF);printf (%d %fn, case, printF);该程序在编译时产生错误,其出错原因是( )。A:定义语句出错,case 是关键字,不能用作用户自定义标识符B:定义语句出错,printF 不能用作用户自定义标识符C:定义语句无错,scanf
2、不能作为输入函数使用D:定义语句无错,printf 不能输出 case 的值题号3.选择题A:( 1分,正确答案 B,学生答案 B )表达式:(int)(double)9/2)-(9)%2 的值是( )。A:0B:3C:4D:5题号4.选择题A:( 1分,正确答案 B,学生答案 D )若有定义语句:int x=10;,则表达式 x-=x+x 的值为( )。A:-20B:-10C:0D:10题号5.选择题A:( 1分,正确答案 D,学生答案 * )有以下程序#include main()int a=1, b=0;printf (%d, b=a+b);printf (%dn, a=2*b);程序运
3、行后的输出结果是( )。A:0,0B:1,0C:3,2D:1,2题号6.选择题A:( 1分,正确答案 A,学生答案 * )有以下程序#include main()int c=0, k;for(k=1; k20?return *p-20:return *p-1;题号12.选择题A:( 1分,正确答案 A,学生答案 * )设 int x=2,y=3,z=(+x2!1B:s20C:s1D:s题号16.选择题A:( 1分,正确答案 C,学生答案 * )若有声明int a 5,*b=a,(*c)3,*d3;,则在以下表达式中有语法错误的是( )。A:a0=0B:b0=0C:c0=0D:d0=0题号17.
4、选择题A:( 1分,正确答案 C,学生答案 * )以下跳转语句中,只有( )可以选择不唯一的跳转目的地。A:continue;B:break;C:goto 标识符;D:return;题号18.选择题A:( 1分,正确答案 A,学生答案 * )一个用c语言编写的程序,( )是必不可少的。A:取名为main的函数定义B:#include C:变量声明D:注释题号19.选择题A:( 1分,正确答案 D,学生答案 * )以下声明中正确的是( )。A:int n=2,an=10;B:int n=10,*p2=&n;C:int n=10,a2=n;D:int a22=10,(*p)2=a+1;题号20.选
5、择题A:( 1分,正确答案 B,学生答案 * )若有函数fun的定义为void fun()static int a=1;.则下列叙述中不正确的是( )。A:在每次调用fun函数时,变量a的值是上次调用结束时a的值B:在fun函数之外,可以用变量名a直接引用a的值C:在其他函数中,可以出现声明double a=2.5;D:fun函数的形式参数不能取名为a题号21.选择题A:( 1分,正确答案 D,学生答案 * )以下单目运算符均只需一个操作数,其中要求操作数的类型只能是指针型的是( )。A:&B:+C:!D:*题号22.选择题A:( 1分,正确答案 D,学生答案 * )C语言规定,在一个源程序中
6、main函数的位置( )。A:必须在最开始B:必须在最后C:必须在预处理命令的后面D:可以在其他函数之前或之后题号23.选择题A:( 1分,正确答案 D,学生答案 B )以下选项中,( )是C语言关键字。A:printfB:includeC:funD:default题号24.选择题A:( 1分,正确答案 A,学生答案 * )已知有声明int a=3,b=4,c;,则执行语句c=1/2*(a+b);后,c的值为( )。A:0B:3C:3.5D:4题号25.选择题A:( 1分,正确答案 B,学生答案 * )设指针变量占2个字节的内存空间,若有声明char *p=123;int c;,则执行语句c=
7、sizeof(p);后,c的值为( )。A:1B:2C:3D:4题号26.选择题A:( 1分,正确答案 C,学生答案 * )已知有声明int a=3,b=4;,下列表达式中合法的是( )。A:a+b=7B:a=|b|C:a=b=0D:(a+)+题号27.选择题A:( 1分,正确答案 D,学生答案 * )已知有声明char s20=Hello;,在程序运行过程中,若要想使数组s中的内容修改为Good,则以下语句中能够实现此功能的是( )。A:s=Good;B:s20=Good;C:strcat(s,Good);D:strcpy(s,Good);题号28.选择题A:( 1分,正确答案 B,学生答案
8、 * )已知有声明int n;float x,y;,则执行语句y=n=x=3.89;后,y的值为( )。A:3B:3.0C:3.89D:4.0题号29.选择题A:( 1分,正确答案 C,学生答案 A )已知有声明int a=12,b=15,c;,则执行表达式c=(a|(b-=a)后,变量b和c的值分别为( )。A:3,1B:15,12C:15,1D:3,12题号30.选择题A:( 1分,正确答案 B,学生答案 * )已知int类型数据在内存中存储长度为2个字节,以下语句中能正确输出整数32768的是( )。A:printf(%d,32768);B:printf(%ld,32768);C:pri
9、ntf(%f,32768);D:printf(%c,32768);题号31.选择题A:( 1分,正确答案 D,学生答案 * )已知有声明int a=3,b=4,c=5;,以下表达式中值为0的是( )。A:a&bB:a=bC:a|b&cD:!(!c|1)题号32.选择题A:( 1分,正确答案 C,学生答案 B )已知有声明long x,y;且x中整数的十进制表示有n位数字(4nb?a+:b+,a+b)的值是( )。A:7B:8C:9D:2题号36.选择题A:( 1分,正确答案 B,学生答案 * )设a为int型变量,执行下列赋值语句后,a的取值分别是( )。a=125.534; a=(int)1
10、25.521%4; a=52;A:125,31,1B:125,1,20C:125,31,20D:125.534,2,20题号37.选择题A:( 1分,正确答案 C,学生答案 * )设有如下程序段,下面描述中正确的是 ( )。int k=10; while(k=0) k=k-1;A:循环执行一次B:循环是无限循环C:循环体语句一次也不执行D:循环体语句执行一次题号38.选择题A:( 1分,正确答案 A,学生答案 * )以下程序的输出结果为( )。int i;void prt( ) for(i=5;i8;i+)printf(%c,*); printf(t);main( )for(i=5;i=8;i
11、+) prt( ); A:*B:* * * *C:* *D:* * *题号39.选择题A:( 1分,正确答案 A,学生答案 * )以下函数调用语句中含有( )个实参。func(e1,e2),(e3,e4,e5);A:2B:3C:5D:语法错误题号40.选择题A:( 1分,正确答案 D,学生答案 * )C语言中的文件类型只有( )。A:索引文件和文本文件两种B:文本文件一种C:二进制文件一种D:ASCII码文件和二进制文件两种题号41.选择题B:( 2分,正确答案 D,学生答案 * )有以下程序#include main()int n=2,k=0;while (k+ &n+2);printf(%
12、d %dn,k,n);程序运行后的输出结果是( )。A:0 2B:1 3C:5 7D:l 2题号42.选择题B:( 2分,正确答案 D,学生答案 * )以下函数 findmax 拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。#define MIN -2147483647int findmax (int x,int n)int i,max;for(i=0;in;i+)max=MIN;if(maxxi)max=xi;return max;造成错误的原因是( )。A:定义语句 int i,max;中 max 未赋初值B:赋值语句 max=MIN;中,不应给 max 赋
13、MIN 值C:语句 if(maxXi)max=Xi;中判断条件设置错误D:赋值语句 max=MIN;放错了位置题号43.选择题B:( 2分,正确答案 D,学生答案 A )下面是有关 C 语言字符数组的描述,其中错误的是( )。A:不可以用赋值语句给字符数组名赋字符串B:可以用输入语句把字符串整体输入给字符数组C:字符数组中的内容不一定是字符串D:字符数组只能存放字符串题号44.选择题B:( 2分,正确答案 C,学生答案 * )有以下程序# include int f(int n);main()int a=3,s;s=f(a);s=s+f(a);printf(%dn,s);int f(int n
14、)static int a=1; n+=a+; return n;程序运行后的输出结果是( )。A:7B:8C:9D:10题号45.选择题B:( 2分,正确答案 B,学生答案 * )下面结构体的定义语句中,错误的是( )。A:struct ord int x; int y; int z; struct ord a; B:struct ord int x; int y; int z; struct ord a; C:struct ord int x; int y; int z;a;D:struct int x; int y; int z; a;题号46.选择题B:( 2分,正确答案 A,学生答案
15、 D )设有定义:char *c;,以下选项中能够使字符型指针 c 正确指向一个字符串的是( A)。A:char str=string;c=str;B:scanf(%s,c);C:c=getchar();D:c=*string;题号47.选择题B:( 2分,正确答案 D,学生答案 * )有以下程序#include #include struct Aint a; char b10; double c;struct A f(struct A t);main()struct A a=1001,ZhangDa,1098.0;a=f(a); printf(%d,%s,%6.1fn,a.a,a.b,a.c
16、);struct A f(struct A t)t.a=1002; strcpy(t.b,ChangRong);t.c=1202.0;return t;程序运行后的输出结果是( )。A:1001,ZhangDa,1098.0B:1002,ZhangDa,1202.0C:1001,ChangRong,1098.0D:1002,ChangRong,1202.0题号48.选择题B:( 2分,正确答案 D,学生答案 * )下列程序段执行后的结果为( )。main()static int a33=1,3,5,7,9,11,13,15,17,y,x,*p=&a22;for(x=0;xxy.x=1;p-xy
17、.y=2;p-c=BLUE;C:scanf(%d%d%d,p-xy.x,p-xy.y,&pixel.c);D:pixel.color=2;题号50.选择题B:( 2分,正确答案 C,学生答案 * )执行了以下程序段后,x、w的值为( )。int x=0,y=1,z=2,w;if(x+) w=x;else if(x+&y=1) w=y;else if(x+&z1) w=z;A:0、1B:1、1C:2、1D:3、2题号51.选择题B:( 2分,正确答案 B,学生答案 * )已有数据类型定义和变量声明如下:struct personint num;char name20,sex;strrutint
18、cla ;char prof20;in;a=20,Li ning,M,5,computer,*p=&a;下列语句中正确的是( )。A:printf(%s,a-name);B:printf(%s,p-in.prof);C:printf(%s,*p.name);D:printf(%s,p-in-prof);题号52.选择题B:( 2分,正确答案 C,学生答案 * )已有预处理命令和声明如下:#define N 10int a=2,c=1;double b=1.2;下述程序段正确的是( )。A:switch(a)case c: a-;break;case c+1:a+;break;B:switch(
19、a)case N0:a=1;break;case 1:a=O;break;C:switch(a)case 2: b+;break;case 0: b=3;D:switch(b)case 1.0: b+;break;case 1.2: b=1;break;题号53.选择题B:( 2分,正确答案 C,学生答案 * )若有以下声明和定义:void fun(int c)printf(%d,c);main()void(*a)(int)=fun,*b(int),(*c)(int);/*调用fun函数语句位置*/void *b(int c)如果在main函数中需要调用fun函数,以下调用语句中错误的是( )
20、。A:fun(1);B:(*a)(1);C:b=fun;(*b)(1);D:c=a;(*c)(1);题号54.判断题:int i=20;switch(i/10)case 2:printf(A);case 1:printf(B);的输出结果为A。( )(对或错) 参考答案( 1分 ) 学生答案( 0分 )错题号55.判断题:函数strlen(ASDFGn)的值是7。( )(对或错) 参考答案( 1分 ) 学生答案( 0分 )错F题号56.判断题:通过return语句,函数可以带回一个或一个以上的返回值。(错)(对或错) 参考答案( 1分 ) 学生答案( 0分 )题号57.判断题:用fopen(f
21、ile,r+);打开的文件file可以进行修改。 ( )(对或错) 参考答案( 1分 ) 学生答案( 0分 )对题号58.填空题:若有定义语句:int a=5;,则表达式:a+的值是_。 参考答案( 2分 ) 学生答案( 0分 )5题号59.填空题:若有语句 double x=17; int y;,当执行 y=(int)(x/5)%2;之后 y 的值为_ 。 参考答案( 2分 ) 学生答案( 0分 )1题号60.填空题:有以下程序#include main()int f,f1,f2,i;f1=0; f2=1;printf(%d,%d, f1,f2);for(i=3;i=5;i+)f= f1+f
22、2; printf(%d,f);f1=f2; f2=f;程序运行后的输出结果是_。 参考答案( 2分 ) 学生答案( 0分 )0,1123题号61.填空题:有以下程序#include int a=5;void fun(int b)int a=10;a+=b; printf(%d,a);main()int c=20;fun(c); a+=c; printf(%d,a);程序运行后的输出结果是_。 参考答案( 2分 ) 学生答案( 0分 )3025题号62.填空题:有以下程序:#include fun(int x)if(x/20) fun(x/2);printf(%d, x);main()fun(
23、6);程序运行后的输出结果是_ 。 参考答案( 2分 ) 学生答案( 0分 )136题号63.实验_程序填空题:输入x、y两个整数,按先大后小的顺序输出x、y。请写出完整程序。注意:源程序存放在blank.c中。不得增行或删行,也不得更改程序的结构!上传完整程序代码! 参考答案( 6分 ) 学生答案( 0分 )#include stdio.hmain( )int x,y, *px,*py,*p;/空1scanf(%d%d,&x,&y);/空2px=&x;/空3py=&y;/空4if(xy)p=px;px=py;py=p;printf(x=%d,y=%d,x,y);printf(MAX=%d,M
24、IN=%d,*px,*py);题号64.实验_程序修改题:给定程序modi.c中fun函数的功能是:根据形参m,计算如下公式的值。 例如,若输入5,则应输出2.283333。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!上传完整程序代码! 参考答案( 6分 ) 学生答案( 0分 )#include double fun(int m)double t = 1.0;int i;for(i = 2; i = m; i+)t+=1.0/i;/错1return t;/错2main()int m;scanf(%d, &m);printf(nT
25、he result is %lfn, fun(m);题号65.实验_程序设计题:编写函数fun,它的功能是计算:s作为函数值返回。在C语言中可调用log(n)函数求ln(n)。log函数的引用说明是:double log(double x)。例如,若m的值为:20,fun函数值为:6.506583。注意:部分源程序在文件prog.c中。请勿改动主函数main,仅在函数fun的花括号中填入你编写的若干语句。上传完整程序代码! 参考答案( 8分 ) 学生答案( 0分 )#include #include double fun(int m)double s=0.0;int i;for(i=1; ib
26、?(bc ? 1 : 0) : 0;功能相同的是( )。A:if(ab) & (bc) k=l;else k=0;B:if(ab)|(bc)k=l;else k=0;C:if(a=b)k=0;else if(bb) k=l;else if(bc)k=1;else k=0;70. 选择题A:( 1分,正确答案 B,学生答案 B )当需要定义一个函数时,以下标识符中,( )不能用作函数名。A:scanfB:forC:_sumD:F271. .选择题A:( 1分,正确答案 C,学生答案C)若要对a进行+运算,则a应具有以下说明( )。A:int a32;B:char *a=12,ab;C:int b
27、10,*a=b;D:char (*a)(char);72. .选择题A:( 1分,正确答案 B,)若有以下程序:int x:int f(int y)return 标识符; #includeint w:main()int z=2;f(z);则在函数f中return语句后允许出现的标识符是( )。A:x或wB:x或yC:z或wD:NULL73. .选择题A:( 1分,正确答案 A,学生答案 A )一个用c语言编写的程序,( )是必不可少的。A:取名为main的函数定义B:#include C:变量声明D:注释74. .选择题A:( 1分,正确答案 D,学生答案 )已知有声明 char c=1;in
28、t x=300;float t=35000;double d=3.1234567e10; ,则以下表达式求值时除( )外其结果都可能是不准确的。A:x=t/cB:t=d/xC:t=d/le5fD:t=x+c75. 选择题A:( 1分,正确答案 A,学生答案 A )已知有声明int a=3,b=4,c;,则执行语句c=1/2*(a+b);后,c的值为( )。A:0B:3C:3.5D:476. .选择题A:( 1分,正确答案 A,学生答案 C )已知有声明int a44=1,2,3,4,5,6,7,8),9,10,11,12,13,14,15,16);,若需要引用值为12的数组元素,则下列选项中错
29、误的是( )。A:*(a+2)+3B:*(*(a+2)+3)C:*(a2+3)D:a2377.选择题A:( 1分,正确答案 B,学生答案 D )下列叙述中,正确的是( )。A:C语言中的文件是流式文件,因此只能顺序存取文件中的数据B:调用fopen函数时若用r或r+模式打开一个文件,该文件必须在指定存储位置或默认存储位置处存在C:当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到该文件中的第1个数据D:无论以何种模式打开一个已存在的文件,在进行了写操作后,原有文件中的全部数据必定被覆盖78. 选择题A:( 1分,正确答案 C,学生答案 )以下叙述中正确的是( )。A:C语言系统以函数
30、为单位编译源程序B:main函数必须放在程序开始C:用户定义的函数可以被一个或多个函数调用任意多次D:在一个函数体内可以定义另外一个函数79. 选择题A:( 1分,正确答案 D,学生答案 D )若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是( )。A:实参和其对应的形参占用同一存储单元B:形参不占用存储单元C:同名的实参和形参占用同一存储单元D:形参和实参占用不同的存储单元80. .选择题A:( 1分,正确答案 D,学生答案)已知有声明 int i,a10,*p=a; ,现需要将1到l0保存到元素a0到a9中,以下程序段中不能实现这一功能的是( )。A:for(i=0;i1
31、0;i+) ai=i+1;B:for(i=0;i10;i+) pi=i+1;C:i=1;while(pa+10) *p+=i+;D:i=1;while(pa+10) *a+=i+;81. .选择题A:( 1分,正确答案 B,学生答案 B )C语言源程序的基本单位是( )。A:过程B:函数C:子程序D:标识符82. 选择题A:( 1分,正确答案 C,学生答案 C )下列程序的输出结果是( )。main( ) int a=7,b=5; printf(%dn,b=b/a);A:5B:1C:0D:不确定值83. .选择题A:( 1分,正确答案 B,学生答案 B )在C语言程序中,以下说法正确的是( )
32、。A:函数的定义可以嵌套,但函数的调用不可以嵌套B:函数的定义不可以嵌套,但函数的调用可以嵌套C:函数的定义和函数的调用都不可以嵌套D:函数的定义和函数的调用都可以嵌套84. .选择题A:( 1分,正确答案 A,学生答案 A )设有以下定义,值为5的枚举常量是( )。enum weeksun,mon=4,tue,wed,thu,fri,sat w;A:tueB:satC:friD:thu85. .选择题B:( 2分,正确答案 D,学生答案 D )有以下程序#include main()int n=2,k=0;while (k+ &n+2);printf(%d %dn,k,n);程序运行后的输出结果是( )。A:0 2B:1 3C:5 7D:l 286. .选择题B:( 2分,正确答案 B,学生答案 )有以下程序#include main()int m=1, n=2, *p=&m, *q