《二级C语言题库.doc》由会员分享,可在线阅读,更多相关《二级C语言题库.doc(108页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言题库题型说明各章内容符号名称分数答题说明章号内容章号内容章号内容A选择题101C语言概述07数组13文件B填空题202算法08函数14C分析程序结果403数据类型、运算符与表达式09预处理命令15D程序填空204顺序程序设计10指针16E编程题1005选择程序设计11结构体与共用体1706循环控制12位运算18备注:0338 11A3#include struct STUchar name10; int num;void f(char *name,int num)struct STU s2=“SunDan”,20044,“Penghua”,20045; num=s0.num; strcp
2、y(name,s0.name);main()struct STU s2=“YangSan”,20041,“LiSiGuo”,20042,*p;p=*s1; f(p-name,p-num);printf(“%s %d”,p-name,p-num);程序运行后的输出结果是( )A、SunDan 20042 B、SunDan 20044C、LiSiGuo 20042 D、YangSan 200410338A0339 05E2编写程序,打印出所有的“对等数”。“对等数”是指一个三位数,其各位数字的和与各位数字的积的积等于该数本身。例如:144(1+4+4)*(1*4*4)0339 main()int
3、a,b,c,k;for(k=100;k=0;i-) if(aix) ai+1=ai; else break;ai+1=x;0341 08E2 用递归方法实现,求123 +n的和。(其中n是自然数)。0341int he(int n) int y;if(n=1) y=1;else y=he(n-1)+n;return y; 0342 03B1 C语言的基本数据类型有()、()、()。0342 整型实型字符型0343 11B1 使几个不同的变量共占同一段内存的结构,称为()类型的结构。0343 共用体0344 03B1 语言中逻辑值“假”用()表示。0344 00345 03B1 C语言中逻辑运算
4、符优先级按由低到高分别是( )。0345 |&!0346 03B1 一个C语句中至少包含一个()。0346 ;或分号0347 03B1 若x是int型变量,且x=6,则表达式 ( x%2+(x+1)/2 ) 的值为( )。0347 30348 13A1 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为A、0 B、1 C、-1 D、一个非0值0348 A0349 03B2 设int a=10 , c=9 ; 则表达式( -a=c+ ? -a : +c )的值是()。0349 80350 03C2 若有说明int x=10,y=20;请写出下面各printf语句对
5、应的输出结果。 printf(“%3xn”,x+y); ( ); printf(“%3on”,x*y); ( ); printf(“%3on”,x%y); ( );printf(“%3xn”,(x%y,x-y,x+y); ( )。03501e310121e0351 03B1 若k为int型变量且赋值11。请写出运算k+后表达式的值()和变量的值()。0351 11120352 13A1 用只读方式打开一个文件“file”,下列正确的是()A、 fp=fopen(“file”,”r”); B、 fp=fopen(“file”,”w”);C、 fp=fopen(“file”,”r+”);D、 fp
6、=fopen(“file”,”w+”);0352 A0353 08A2 下列定义中不正确的是()。 A、 int p; B、 int pn; C、 int *p(n); D、 int (*p)(); E、 int *p;0353 C0354 08A1以下关于函数的叙述中正确的是A、 每个函数都可以被其它函数调用(包括main函数)B、 每个函数都可以被单独编译C、 每个函数都可以单独运行D、 在一个函数内部可以定义另一个函数0354 B0355 10A2有以下程序main()int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,*q=p+2; Printf(“%dn”,*p+
7、*q);程序运行后的输出结果是A、16B、10C、8D、60355 B0356 03A1 设有 int x=5,y=8; 则表达式(x+5y-3x-5)的值是()A、 1B、 0C、 3D、 40356 B0357 07A1有以下程序main()char p=a,b,c,q=”abc”; printf(“%d %d”,sizeof(p),sizeof(q);程序运行后的输出结果是A、44B、33C、34D、430357 C0358 06A2以下程序的输出结果是()。 int x=3; do printf(“%d”,x-=2); while(!(-x); A、1B、30C、12D、死循环0358
8、 C0359 10B2 下列语句执行后的结果是()。main()int arr=30,25,20,15,10,5,*p=arr; p+; printf(“%dn”,*(p+3);0359 100360 10C2void fun(int *n)while (*n)-; Printf(“%d”,+(*n);main()int a=100; fun(&a);0360 00361 03A2以下程序的输出结果是main()int x=0.5;char z=a; printf(“%dn”,(x&1)&(zz);A、0B、1C、2D、30361 B0362 10A1下列程序的输出结果是main()char
9、a10=9,8,7,6,5,4,3,2,1,0,*p=a+5; printf(“%d”,*-p);A、非法B、a4的地址C、5D、3 0362 C0363 10A1 经过下面的语句 int i,a10,*p; 定义后,下列语句中合法的是()。 A、p=100; B、p=a5; C、p=a2+2; D、p=&(i+2); E、p=a+2;0363 E0364 10A1 经过下面的语句 int i,a5,*p; 定义后,下列语句中合法的是( )。 A、p=a; B、p=a5; C、p=a2+2; D、p=&(i+2); E、p=*a;0364 A0365 03B1 静态双精度实型变量 flag;0
10、365 ststic double flag;0366 07B1 指向具有5个数据元素的长整型数组的指针变量 p ;0366 long int (*p)5;0367 03B3 表示时间的变量 t ;0367 struct nusignde h,m,s; t;0368 07B2 表示班级60名学生姓名的数组 xm ;0368 char xm6110;0369 11B3 定义类型COLOR为具有五种颜色(用英文表示颜色)的枚举类型。0369 typedef enum color red,blue,white,green,yellow COLOR;0370 06E3 计算six , nine满足si
11、x+six+six=nine+nine /* 注:由于有SIX+SIX+SIX=NINE+NINE */0370 void countvalue() int i;printf(n);for(i=666;i=999;i=i+2)if(i/10%10=(3*i/2)/100%10) /*以I为准*/cnt+;sum+=i+3*i/2;0371 08C2 #include main( ) int I,s; for(i=0;i10) printf(“%xt”,i); a=i&0x000f; b=(i2)&0x00ff; printf(“%xt%xn”,b,a); 当程序运行时输入11之后,执行的输出结
12、果是:( )037211 44 110373 08C3 本程序运行时,当分别输入字符串”ABCD”和”1234”时,输出结果是什么? char con(string1,string2,string) char string1,string2,string; int i,j; for(i=0;string1i!=0;i+) stringi=string1i; for(j=0;string2j!=0;j+) stringi+j=string2j; stringi+j=0; main() char s1100,s2100,s100; scanf(%s,s1); scanf(%s,s2); con(s
13、1,s2,s); printf(%sn,s);0373 ABCD12340374 07E2编写一个函数S,对数组从小到大进行排序。0374 #include void s(int b,int n) int i,j,t,flg;for(i=0;in-1;i+)for(flg=0,j=0;jbj+1 t=bj;bj=bj+1;bj+1=t; flg=1; if(!flg)break; 0375 04C1 以下程序的功能是什么( ) main() char ch;scanf(“%cn”,&ch);ch=( ch=A&ch=Z )?ch+32:ch;printf(“char=%cn”,ch);0375
14、 把大写字母A-Z转换成对应的小写字母a-z,其它字符不转换。0376 05D2 本程序从键盘输入n(0n100)个整数,计算并输出其中出现次数最多且数值最大的元素及其出现次数。 #include #define N 100 void main() int aN,n,i,j,ind,c1,c2;do printf(“输入n(0n100):n”); scanf(“%d”,&n);while(n=0| );printf(“输入数组元素:n”);for(i=0;in;i+) scanf(“%d”,&ai);for(c2=i=0;in;i+) for(c1=1,j=i+1;jaind) c2=c1;
15、;printf(“其中%d出现%d次n”,aind, c2 );0376n=100c1+或c1=c1+1c1c2ind=i0377 05A1设有程序段int k=10;while (k=0) k=k-1;则下面的描述正确的是()A、while循环执行10次B、循环是无限循环C、循环体语句一次也不执行D、循环体语句执行一次0377 C0378 05A1设有以下程序段int x=0,s=0;while(!x!=0) s+=+x;printf(“%d”,s);则()A、运行程序段后输出0B、运行程序段后输出1C、程序段中控制表达式是非法的D、程序段执行无限次0378 B0379 03A1语句whil
16、e(!E);中的表达式!E等价于()A、E0B、E!1C、E!0D、E10379 A0380 05A2下面程序段运行结果是()a=1;b=2;c=2;while(abc) t=a;a=b;b=t;c-;printf(“%d,%d,%d”,a,b,c);A、1,2,0B、2,1,0C、1,2,1D、2,1,10380 A0381 05A2下面程序段运行结果是()x=y=0;while(x15) y+,x+=+y;printf(“%d,%d”,y,x);A、20,7B、6,12C、20,8D、8,200381 D0382 05A2下面程序段运行结果是()int n=0;while(n+=2); p
17、rintf(“%d”,n);A、2B、3C、4D、有语法错0382 C0383 05A3设有程序段t=0;while(printf(“*”)t+;if(t3) break;下面描述正确的是()A、其中循环控制表达式与0等价B、其中循环控制表达式与0等价C、其中循环控制表达式是不合法的D、以上说法都不对0383 B0384 05A2下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空#include main()int a,b,t;scanf(“%d%d”,&a,&b);while( )if(ab)t=a;a=b;b=t;printf(“%d,%dn”,
18、a,b);scanf(“%d%d”,&a,&b);A、!a=bB、a!=bC、a=bD、a=b0384 B0385 05A2下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空#include main()int m=0,n=0;char c;while(【1】)!=n)if(c=A & c=a & c=z) n+;printf(“%dn”,mn? 【2】);【1】A、c!=getchar()B、getchar()C、c=getchar()D、scanf(“%c”,c)【2】A、n:mB、m:nC、m:mD、n:n0385【1】 C
19、【2】 A0386 05D1下面程序段是找出整数的所有因子,填空scanf(“%d”,&x);i=1;for( ;【】; )if(x%i=0) printf(“%3d”,i);i+;0386 i=x0387 05D1鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空for(x=1;x=29;x+)y=30-x;if(【1】) printf(“%d,%dn”,x,y);0387 2*x+7*y=900388 05C2下面程序段的运行结果是()for(a=1,i=-1;-1=i1;i+)a+;printf(“%2d”,a);printf(“%2d”,i);0388 -10389
20、05B1若for循环用以下形式表示for(表达式1;表达式2;表达式3) 循环体语句则执行语句for(i=0;i3;i+) printf(“*”);时,表达式1执行()次,表达式3执行()次0389 130390 05D1下面程序的功能是计算1-3+5-7+-99+101的值,请填空#include main()int i,t=1,s=0;for(i=1;i,=,=,=,!=)、逻辑运算符有( )。0407&,|,!0408 03B3 设有定义: int x=1,y=-1; 则语句: printf(“%dn”,x-|+y); 的输出结果是()0408 10409 03B3 设int x=1 ,
21、 y=1; 表达式( !x|-y )的值是()0409 00410 03B3 设int a=10 , c=9 ; 则表达式( -a=c+ ? ca : +c )的值是()0410 10411 13A3要打开一个已存在的非空文件“file”用于修改,选择( )A、 fp=fopen(“file”,”r”); B、 fp=fopen(“file”,”w”);C、 fp=fopen(“file”,”r+”);D、 fp=fopen(“file”,”w+”);0411C0412 03A2设有 int a=20; 执行完语句 a-=a*a; 后,a的值是( )A、 552B、 144C、 264D、 3
22、800412D0413 10A3有以下程序void fun(char *a, char *b) a=b; (*a)+; main() char c1=A,c2=a,*p1,*p2;p1=&c1; p2=&c2; fun(p1,p2);printf(%c%cn,c1,c2);程序运行后的输出结果是( )A、Ab B、aa C、Aa D、Bb0413A0414 07A2以下能正确定义一维数组的选项是( )A、int num; B、#define N 100 int numN;C、int num0.100; D、 int N=100; int numN;0414B0415 03A1 设有 int x
23、=1,y=8; 则表达式(x+4=y-3b ? a:b); 0421double max0422 10A3设有如下定义:int (*ptr)*();则以下叙述中正确的是( )A、ptr是指向一维组数的指针变量B、ptr是指向int型数据的指针变量C、ptr是指向函数的指针,该函数返回一个int型数据D、ptr是一个函数名,该函数的返回值是指向int型数据的指针0422C0423 11A2 以下对枚举类型名的定义中正确的是( )A、enum a=one,two,three;B、enum a one=9,two=1,three;C、enum a=“one”,“two”,“three”;D、enum
24、 a “one”,“two”,“three”;0423B0424 03B2设有 int x=0,y=1,a=2,b=3,c=4; 则逻辑表达式( !(x=a)&(y=b)&c )的值( );x的值( );y的值( )04240、2、10425 08B3 int func() static int s=0;int x=10;return(s+=x); 第2次调用函数时返回值为( )0425200426 03B2 设有 int m=10,n=0,a=3,b=4; 则执行完语句 if( (m!=n)&(a=n)&(b=m) ) m+=1; 后变量b的值( )042640427 03B3设有 int
25、a=12; 执行完语句 a+=a-=a*a; 后,a的值是( )0427-2640428 03A2 在C语言中,正确的int类型的常量是( )A、32768 B、-32769C、”fdjs”D、0Xaf0428D0429 04A2 设有int a=3,b=4;语句 printf(“%d”,(a=2)|(b=-2) ); 的输出结果是( ) A、无输出B、结果不确定C、1D、00429D0430 03A2 设有定义: int x=1,y=-1; , 则语句: printf(“%dn”,x-&+y); 的输出结果是( )A、1B、0C、1D、20430B0431 09A2 以下程序的输出的结果是( )A、11B、3C、36D、18 #define f(x) x+x main() int a=6 , b=2 , c;c=f(a)/f(b);printf(“%dn”,c); 0431A0432 06A3 以下程序的输出的结果是( ) A、2B、1C、0D、不确定 main() union char i2; int k; r;r.i0=1
限制150内