《C语言笔试练习题汇编.pdf》由会员分享,可在线阅读,更多相关《C语言笔试练习题汇编.pdf(93页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言笔试练习题汇编练习1一、选择题下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。1 1)用C语言编写的代码程序A)可立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行答 案:B1 2)结构化程序由三种基本结构组成,三种基本结构组成的算法A)可以完成任何复杂的任务B)只能完成部分复杂的任务C)只能完成符合结构化的任务D)只能完成一些简单的任务答案:A1 3)以下定义语句中正确的是A)char a=A b=B ;B)flo at a=b=1 0.0;C)in t a=1 0,*b=&a;D)flo at*a,b=&a;答案:c1 4)下列选项中,不能用作标识符
2、的是A)_1 2 3 4 _B),l_2C)in t_2 _D)2 _in t_答案:D1 5)有以下定义语句do uble a,b;in t w;lo n g c;若各变量已正确赋值,则下列选项中正确的表达式是A)a=a+b=b+B)w%(in t)a+b)C)(c+w)%(in t)aD)w=a=b;答案:C1 6)有以下程序m ain()in t m=3,n=4,x;x=-m+;x=x+8/+n;p rin tf dn ,x);程序运行后的输出结果是A)3B)50-1D)-2答案:D17)有以下程序main()char a=ab;printf(%c,n,+a);printf(%cn n,
3、b=a-H-);)程序运行后的输出结果是A)b,bB)b,cC)a,bD)a,c答案:A18)有以下程序main()int m=0256,n=256;printf(%o%onn,m,n);)程序运行后的输出结果是A)0256 0400B)0256 256C)256 400D)400 400答案:C19)有以下程序main()int a=666,b=888;printf(%dn,a,b);)程序运行后的输出结果是A)错误信息B)666C)888D)666,888答案:B2 0)有以下程序main()inti;for(i=0;i3;i+)switch(i)case O:printf(%d,i);c
4、ase 2:printf(H%d,i);default:printf(,%d,i);程序运行后的输出结果是A)022111B)021021Q000122D)012答案:C2 1)若 x 和 y 代表整型数,以下表达式中不能正确表示数学关系lx-yl10的是A)abs(x-y)-10&x-y10C)!(x-y)10D)(x-y)*(x-y)b)if(bc)printf(,%d,d+1);elseprintf(%d,+d+1);printf(n%dnn,d);)程序运行后的输出结果是A)2B)3C)43D)44答案:A2 3)下列条件语句中,功能与其他语句不同的是A)if(a)printf(dn”
5、,x);else printf(M%dnn,y);B)if(a=O)printf(n%dn,y);else printf(,%dn,x);C)if(a!=O)printf(dn”,x);else printf(%dnM,y);D)if(a=O)printf(%dnn,x);else printf(%dn,y);答案:D2 4)有以下程序main()int i=O,s=O;for(;)(if(i=3lli=5)continue;if(i=6)break;i+;s+=i;)printf(dn”,s);)程序运行后的输出结果是A)1OB)13C)21D)程序进入死循环答案:D2 5)若变量己正确定义
6、,要求程序段完成求5!的计算,不能完成此操作的程序段是A)for(i=1,p=1 ;i=5;i+)p*=i;B)for(i=1 ;i=5;i+)p=1 ;p*=i;C)i=1 ;p=l;while(i=5)p*=i;i+;D)i=l;p=1 ;do p*=i;i+;while(is2)S;B)if(strcmp(sl,s2)S;C)if(strcmp(s2,s 1)0)S;D)if(strcmp(sl,s2)0)S;答案:D3 2)设有定义语句int x6=246,8,5,7,*p=x,i;要求依次输出x 数组6 个元素中的值,不能完成此操作的语句是A)for(i=0;i6;i+)printf
7、(%2d,*(p+);B)for(i=0;i6;i+)printf(n%2dn,*(p+i);C)for(i=0;i6;i+)printf(%2dn,*p+);D)for(i=0;i6;i+)printf(n%2dn,(*p)+);答案:D3 3)有以下程序#include main()int a=1,2,3,4,5,6,7,8,9,10,11,12,*p=a+5,*q=NULL;*q=*(p+5);printf(d%dn”,*p,*q);)程序运行后的输出结果是A)运行后报借B)6 6C)6 IID)5 10答案:A3 4)设有以下定义和语句int a32=l,2,3,4,5,6,*p3;p
8、0=al;则*(p0+l)所代表的数组元素是A)a0lB)alf0C)allD)al2答案:C3 5)有以下程序main()char str10=China,;,Beijing,*p=str;printf(n%sn,p4-10);)程序运行后的输出结果是A)ChinaB)BeijingC)ngD)ing答案:B3 6)有以下程序main()chars=ABCD”,*p;for(p=s+l;ps+4;p+)printf(H%sn,p);)程序运行后的输出结果是A)ABCDBCDCDDB)ABCDC)BCDD)BCDCDD答案:D3 7)在函数调用过程中,如果函数如funA调用了函数funB,函数
9、funB又调用了函数如funA,则A)称为函数的直接递归调用B)称为函数的间接递归调用C)称为函数的循环调用D)C语言中不允许这样的递归调用答案:B3 8)己有定义:inti,a10,*p;,则合法的赋值语句是A)p=100;B)p=a5;C)p=a2+2;D)p=a+2;答案:D3 9)以下叙述中正确的是A)局部交量说明为static存储类,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同答 案:A4 0)设有定义语句:charcl=92,c2=92;,则以下表达式中值为
10、零的是A)clAc2B)cl&c2C)c2D)cllc2答案:A4 1)程序中对fun函数有如下说明void*fun();此说明的含义是A)fun函数无返回值B)fun函数的返回值可以是任意的数据类型C)fun函数的返回值是无值型的指针类型D)指针fun指向一个函数,该函数无返回值答案:C4 2)有以下程序main()char s=Yesn/No,*ps=s;puts(ps+4);*(ps+4)=0;puts(s);)程序运行后的输出结果是(选项D 中的第一行是空行)A)n/NoYes/NoB)/NoYesC)n/NoYes/NoD)/NoYes答案:B4 3)有以下程序main()unsig
11、ned int a;int b=l;a=b;printf(n%u;a);)程序运行后的输出结果是A)-lB)65535032767D)-32768答案:B4 4)有以下程序void fun(int*a,int i.int j)intt;if(ij)t=ail;ai=aj;aj=t;i+;j-;fun(a,i,j);m ai n()i n t x=2,6J,8,i;f un(x,0,3);f o r(i=0;i n umB)p-n umC)(*p).n umD)stu 3.ag e答案:D4 6)有以下程序m ai n()i n tx=l,3,5,7,2,4,6,0),i,j,k;f o r(i
12、=0;i=i;j-)i f(x j+l x j)k=x|j;x|j=x j+l;x|j+l=k;f o r(i=0;i 3;i+)f o r(j=4;j x j+l)k=x|j|;x|j=x j+l|;x j+l=k;f o r(i=0;i 8;i+)p ri n tf(%d ,x i);p ri n tf(An );)程序运行后的输出结果是A)753 1 0 2 46B)0 1 2 3 45670 7 6 3 1 0 4 6 2D)1 3 570 2 46答案:A4 7)有如下程序#i n cl ud e main()FILE*fpl;fpl=fopen(ufl.txt/w);fprintf
13、(fpl,abcn);fclose(fpl);)若文本文件fl.txt中原有内容为:g o o d,则运行以上程序后文件fl.txt中的内容为A)goodabcB)abcdC)abcD)abcgood答案:C48)(48)(50)共用一题。以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请选择正确的选项作为下划线号码与题号相同处的正确答案。#include struct nodechar data;stuct node*next;(48)_CreatList(char*s)struct node*h,*p,*q;h=(struct node*)
14、malloc(sizeof(struct node);P=q=h;while(*s!=W)p=(struct node*)malloc(sizeof(struct node);p-data=_(49)_;q-next=p;q=一(50)_;s+;)p-next=0*;return h;main()char str=Mlink list1;struct node*head;head=CreatList(str);A)char*B)struct nodeC)struct node*D)char答案:c49)(48)(50)共用一题。以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的
15、字符依次转储到链表的各个结点中,请选择正确的选项作为下划线号码与题号相同处的正确答案。#include struct nodechar data;stuct node*next;(48)_CreatList(char*s)struct node*h,*p,*q;h=(struct node*)malloc(sizeof(struct node);p=q=h;while(*s!=0)p=(struct node*)malloc(sizeof(struct node);p-data=(49)一;q-next=p;q=_(50)_;S+;)p-next=0*;return h;main()char
16、strl=*link list;Struct node*head;he ad=Cre at Li st(st);)A)*sB)sC)*s+D)(*s)+答案:A50)(48)(50)共用一题。以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请选择正确的选项作为下划线号码与题号相同处的正确答案。#include struct nodechar data;stuct node*next;(48)_CreatList(char*s)struct node*h,*p,*q;h=(struct node*)malloc(sizeof(struct nod
17、e);P=q=h;while(*s!=,0,)p=(struct node*)malloc(sizeof(struct node);p-data=_(49)_;q-next=p;q=_(50)_;s+;)p-next=0f;return h;)main()char strl=link list;Struct node*head;head=CreatList(st);)A)p-nextB)pC)sD)s-next答案:B二、填空题6)以下程序段的输出结果是6Lint i=9;printf(%on,i);本小题第1空答案:117)以下程序运行后的输出结果是7】。main()int a,b,c;a=
18、25;b=025;c=0 x25;printf(u%d%d%dn;a,b,c);)本小题第1空答案:25 21 378)以下程序运行后的输出结果是8】。main()int p7=11,13,14,15,16,17,18);int i=0,j=0;while(i7&pi%2=l)j+=pi+;printf(n%dnM,j);)本小题第1空答案:249)以下程序运行后的输出结果是9main()int x=l,y=O,a=O,b=O;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;)case 2:a+;b+;break;)printf
19、(n%d%dn;a,b);)本小题第1空答案:2 11 0)以下程序运行后的输出结果是【10】。main()int a44=lX3445,6,7,8,ll,12,13,14,15,16,17,18);int i=0,j=0,s=0;while(i+4)(if(i=2lli=4)continue;j=0;do s+=aij;j+;while(j4);printf(u%dnn,s);)本小题第1空答案:921 1)以下程序运行后的输出结果是【11】。main()char a=,Language,b=MPrograme;char*pl,*p2;int k;pl=a;p2=b;for(k=0;k=7;
20、k+)if(*(p 1 +k)=*(p2+k)printf(c”,*(p 1 +k);)本小题第1空答案:gae1 2)以下程序运行后的输出结果是【12】。main()char a=nl23456789,*p;int i=0;p=a;while(*p)if(i%2=0)p+;i+;)puts(a);本小题第1空答案:*2*4*6*8*1 3)以下程序中,fo r循环体执行的次数是【13】。#define N2#deflne MN+1#define KM+PM/2main()int i;for(i=l;iK;i+)-本小题第1空答案:414)本小题第1空答案:x本小题第2 空答案:x*x+l或
21、l+x*x1 5)以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。main()int i,a20,sum,count;sum=count=0;for(i=0;i20;i+)scanf(%d,1 6);for(i=0;iO)count+;sum+=17;)printf(sum=%d,count=%dn,sum,count);)本小题第1 空答案:&ai或 a+i本小题第2 空答案:ai或*(a+i)1 6)以下程序中,函数SumColumMin的功能是:求出M 行 N 列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。#define
22、M2#define N4void SumColumMin(int aMN,int*sum)int i,j,k,s=O;for(i=0;iN;i+)k=0;for(j=l;jaji)k=j;s+=1 8;)19=s;main()int xMN=3,2,5,l,4,l,8,3),s;SumColumMin(2 0);printf(dn”,s);)本小题第1空答案:aki本小题第2 空答案:*sum本小题第3 空答案:x,&s练习2一、选择题下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。1 2)以下选项中可作为C 语言合法常量的是A)-80.B)-080C)-8el.OD)-80.
23、0e答案:A1 3)以下叙述中正确的是A)用 C 程序实现的算法必须要有输入和输出操作B)用 C 程序实现的算法可以没有输出但必须要有输入C)用 C 程序实现的算法可以没有输入但必须要有输出D)用 C 程序实现的算法可以既没有输入也没有输出答案:C1 4)以下不能定义为用户标识符是A)MainB).0C)_intD)sizeof答案:D1 5)以下选项中,不能作为合法常量的是A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0答案:B16)数字字符0 的 ASCII值为4 8,若有以下程序main()char a=,l,b=,2,;printf(n%c;b+);pr
24、intf(%dn;b-a);程序运行后的输出结果是A)3,2B)50,2C)2,2D)2,50答案:C17)有以下程序main()int m=12,n=34;printf(n%d%d,m4-+,+n);printf,%d%dn,n+4-,+m);)程序运行后的输出结果是A)12353514B)12353513012343514D)12343513答案:A18)有定义语句:int b;char c10;,则正确的输入语句是A)scanf(*%d%s,&b,&c);B)scanf(M%d%sn,&b,c);C)scanf(n%d%su,b,c);D)scanf(u%d%sM,b,&c);答案:B1
25、9)有以下程序main()int m,n,p;scanf(m=%dn=%dp=%d”成 m,&n,&p);printf(,%d%d%dn,m,n,p);)若想从键盘上输入数据,使变量m 中的值为123,n 5 的值为456,p 中的值为789,则正确的输入是A)m=123n=456p=789B)m=123 n=456 p=789C)m=123,n=456,p=789D)123 456 789答案:A2 0)有以下程序main()int a,b,d=25;a=d/10%9;b=a&(-l);printf(%d,%dnn,a,b);程序运行后的输出结果是A)6,lB)2,lC)6,0D)2,0答案
26、:B2 1)有以下程序main()int i=1 ,j=2,k=3;if(i+=l&(+j=3 II k+=3)printf(%d%d%dn,i,j,k);)程序运行后的输出结果是A)1 2 3B)2 3 4C)2 2 3D)2 3 3答案:D2 2)若整型变量a、b、c、d 中的值依次为:1、4、3、2。则条件表达式ab?a:cd?c:d的值是A)1B)2C)3D)4答案:A2 3)有以下程序main()intp8=ll,12,13,14,15,16,17,18),i=0,j=0;while(i+y?x:y;i n t f 2(i n t xj n t y)re turn xy?y:x;m
27、ai n()i n t a=4,b=3,c=5,d=2,e,f,g;e=f 2(f 1 (a,b),f 1 (c,d);f=f 1 (f 2(a,b),f 2(c,d);g=a+b+c+d-e-fp ri n tf(n%d,%d,%d nM,e,f,g);程序运行后的输出结果是A)4,3,7B)3,4,7C)5,2,7D)2,5,7答案:A27)已有定义ch ara=xyz,b=x,V,z ;,以下叙述中正确的是A)数 组a和b的长度相同B)a数组长度小于b数组长度C)a数组长度大于b数组长度D)上述说法都不对答案:C28)有以下程序vo i d f(i n t*x,i n t*y)i n t
28、 t;t=*x;*x=*y;*y=t;m ai n()i n t a 8=l,2,3,4,5,6,7,8,i,*p,*q;p=a;q=&a 7|;w h i l e (p q)f(p,q);P+;q-;f or(i=0;i 8;i+)p ri n t f(%d,a i );程序运行后的输出结果是A)8,2,3,4,5,6,7,l,B)5,6,7,8,2,3,4,01,2,3,4,5,6,7,8,D)8,7,6,5,4,3,2,l,答案:D2 9)有以下程序main()int a33,*p,i;p=&a00;for(i=0;i9;i+)pij=i;for(i=0;i=n;i)ai+l=ai;)m
29、ain()int i,aN=1,2,3,4,5,6,7,8,9,10;fun(a,2,9);for(i=0;i5;i+)printf(H%d,ai);)程序运行后的输出结果是A)10234B)12344C)12334D)12234答案:C3 2)有以下程序main()int a32=0,(*ptr)2,i,j;for(i=0;i2;i+)ptr=a+i;scanf(,%d,ptr);ptr+;for(i=0;i3;i+)forj=0;j2;j+)printf(%2d,aiU);printf(,nn);)若运行时输入:1 2 3 回车,则输出结果为A)产生错误信息B)1 02000C)1 230
30、00D)1 02030答案:B3 3)有以下程序prt(int*m,int n)int i;for(i=0;in;i+)mi+;)main()int a=l,2,3,4,5,i;prt(a,5);for(i=0;i5;i+)printf(M%d,ai);)程序运行后的输出结果是A)1,2,3,4,5,B)2,3,4,5,6,03,4,5,6,7,D)2,3,4,5,l,答案:B3 4)有以下程序main()int a=l,2,3,4,5,6,7,8,9,0),*p;for(p=a;pa+10;p+)printf(%d,*p);)程序运行后的输出结果是A)12,3,4,5,6,7,8,9,0,B
31、)2,3,4,5,6,7,8,9,10,1,00,1,2,3,4,5,6,7,8,9,D)l,l,1,1,1,1,1,1,1,1,答案:A3 5)有以下程序#define P 3void F(int x)return(P*x*x);main()printf(dn”,F(3+5);程序运行后的输出结果是A)192B)29C)25D)编译出错答案:D3 6)有以下程序main()int c=35;printf(dn”,c&c);程序运行后的输出结果是A)0B)70C)35D)1答案:C3 7)以下叙述中正确的是A)预处理命令行必须位于源文件的开头B)在源文件的一行上可以有多条预处理命令C)宏名必须
32、用大写字母表示D)宏替换不占用程序的运行时间答案:D3 8)若有以下说明和定义union dtint a;char b;double c;data;以下叙述中错误的是A)data的每个成员起始地址都相同B)变量data所占内存字节数与成员c 所占字节数相等C)程序段:data.a=5;printf(%fn,data.c);输出结果为 5.000000D)data可以作为函数的实参答案:C3 9)以下语句或语句组中,能正确进行字符串赋值的是A)char*sp;*sp=right!”;B)chars10;s=nright!n;C)chars10;*s=right!;D)char*sp=right!
33、n;答案:D4 0)设有如下说明typedef struct ST long a;int b;char c2;NEW;则下面叙述中正确的是A)以匕的说明形式非法B)ST是一个结构体类型C)NEW是一个结构体类型D)NEW是一个结构体变量答案:C4 1)有以下程序main()int a=l,b;for(b=1;b=8)break;if(a%2=l)a+=5;continue;a-=3;)printf(H%dnb);)程序运行后的输出结果是A)3B)4C)5D)6答案:B4 2)有以下程序main()chars=H159,*p;p=s;printf(n%cu,*p+);printf(,%c,*p+
34、);)程序运行后的输出结果是A)15B)16C)12D)59答案:A4 3)有以下函数fun(char*a,char*b)while(*a!=0)&(*b!=0)&(*a=*b)a+;b+;return(*a-*b);该函数的功能是A)计算a 和 b 所指字符串的长度之差B)将 b 所指字符串复制到a 所指字符串中C)将 b 所指字符串连接到a 所指字符串后面D)比较a 和 b 所指字符串的大小答案:D4 4)有以下程序main()int num44=l,2,3,4,5,6,7,8,9,10,ll,12,13,14,15,16,i,j;for(i=0;i4;i+)forj=l;j=i;j+)p
35、rintf(%4c,);fo r(j=;jnext=q-next;B)p-next=p-next-next;C)p-next=r;D)p=q-next;答案:D4 8)以下对结构体类型变量td 的定义中,错误的是A)typedef struct aaint n;float m;AA;AA td;B)struct aa int n;float m;td;struct aa td;Qstruct int n;float m;aa;struct aa td;D)struct int n;float m;td;答案:C4 9)以下与 函 数 fkeek(fp,OL,SEEK_SET)有相同作用的是A)
36、feof(fp)B)ftell(fp)C)fgetc(fp)D)rewind(fp)答案:D5 0)有以下程序#include void WriteStr(char*fn,char*str)FILE*fp;fp=fopen(fn,w);fputs(str,fp);fclose(fp);main()WriteStr(”tl.dat”Jstart);WriteStr(Htl.datn,Hendu);)程序运行后,文件tl.dat中的内容是A)startB)endQstartendD)endrt答案:B二、填空题请将每一个空的正确答案写在答题处。6)以下程序运行时若从键盘输入10 20 30 回 车
37、 输 出 结 果 是 61#include main()int i=0,j=0,k=0;scanf(H%d%*d%d,&i,&j,&k);printf(,%d%d%dn,i,j,k);本小题第1空答案:10 30 07)以下程序运行后的输出结果是 71#define S(x)4*x*x+lmain()int i=6,j=8;printf(%dn”,S(i+j);)本小题第1空答案:818)以下程序运行后的输出结果是 8】。main()int a=3,b=4,c=5,t=99;if(ba&ac)t=a;a=c;c=t;if(ac&bc)t=b;b=a;a=t;printf(H%d%d%dnna,
38、b,c);)本小题第1空答案:4 5 999)以下程序运行后的输出结果是 9】。main()int a,b,c;a=10;b=20;c=(a%b 1);printf(H%d%d%dnua,b,c);)本小题第1 空答案:10 20 01 0)以下程序运行后的输出结果是【10】。main()char cl,c2;for(c l=,0,c2=,9,;c 1 c2;c l+,c2)printf(n%c%cH,cl,c2);printf(MnH);)本小题第1空答案:09182736451 1)已知字符A 的 ASCII代码值为6 5,以下程序运行时若从键盘输入:B33 回 车 则 输 出结果是【11
39、】。#include main()char a,b;a=getchar();scanf(M%d,&b);a=a-,A+,0,;b=b*2;printf(M%c%cnMa,b);本小题第1 空答案:1 B1 2)以下程序中,fun函数的功能是求3 行 4 列二维数组每行元素中的最大值。请填空。void fun(int i,int,int(*)4,int*);main()int a34=12,41,36,28,19,33,15,27,3,27,19,1 ,b3,i;fun(3,4,a,b);for(i=0;i3;i+)printf(,%4d,bi);printf(nH);)void fun(int
40、 m,int n,int ar4,int*br)int i,j,x;for(i=0;im;i+)x=ari0;for(j=0;jn;j+)if(xarij)x=arij;12=x;本小题第1空答案:bri或*(br+i)1 3)以下程序运行后的输出结果是【13】。void swap(int x,int y)int t;t=x;x=y;y=t;printf(%d%dn”,x,y);)main()int a=3,b=4;sw叩(a,b);printf(n%d%dna,b);)本小题第1 空答案:43 341 4)以下程序运行后的输出结果是【14】。#include void fun(char*s,
41、int p,int k)int i;for(i=p;ik-1 ;i+)si=si+2;)main()char s=,abcdefg,;fun(s,3,strlen(s);puts(s);)本小题第1 空答案:abcfg1 5)以下程序运行后的输出结 果 是【15】。#include main()charch=,bc”,x34;inti;for(i=0;i3;i+)strcpy(xi,ch);for(i=0;i3;i+)printf(M%sn,&xii);print(nnn);)本小题第1空答案:abcbcc1 6)以下程序运行后的输出结 果 是【16】。fun(int a)int b=0;st
42、atic int c=3;b+;c+;return(a+b+c);)main()int i,a=5;for(i=0;ik=+i;p+;q-k=i+;q;)q-k=i;for(i=0;i5;i+)printf(H%dn,mi.k);printf(n“);)本小题第1 空答案:134311 8)以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:n o!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。#include char*huiwen(char*str)char*pl,*p2;int i,
43、t=0;pl=str;p2=1 8;for(i=0;i=kB)-k+C)k%int(f)D)k=f=m答案:C2 3)设有定义:int a=2,b=3,c=4;,则以下选项中值为。的表达式是A)(!a=l)&(!b=0)B)(ab)&!clllC)a&bD)al l(b+b)&(c-a)答案:A2 4)有以下程序段int k=0,a=l,b=2,c=3;k=ac?c:k;执行该程序段后,k 的值是A)3B)2C)1D)0答案:B25)设变量a、b、c、d 和 y 都己正确定义并赋值。若有以下if语句if(ab)if c=d)y=0;else y=l;该语句所表示的含义是A)B)C)D)答案:c
44、26)有以下程序段int n,t=l,s=O;scanf(n%d,&n);do s=s+t;t=t-2;while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是A)任意正奇数B)任意负偶数C)任意正偶数D)任意负奇数答案:D27)设变量已正确定义,则以下能正确计算f=n!的程序段是A)f=O;for(i=l;i=n;i+)f*=i;B)f=l;for(i=l;il;i+)f*=i;D)f=l;for(i=n;i=2;i)f*=i;答案:D28)设有定义:int nl=0,n2,*p=&n2,*q=&nl;,以下赋值语句中与n2=nl;语句等价的是A)*p=*q;B)p=q;C)
45、*p=&nl;D)p=*q;答案:A29)若有定义:int x=O,*p=&x;,则语句printf(%dn,*p);的输出结果是A)随机值B)0C)x的地址D)p的地址答案:B30)设函数fun的定义形式为void fun(char ch,float x).则以下对函数fun的调用语句中,正确的是A)fun(nabcH,3.0)B)t=funCD,16.5);C)fun(65;2.8);D)fun(32,32);答案:D3 1)有以下程序main()int a10=l,2,3,4,5,6,7,8,9,10,*p=&a3,*q=p+2;printf(%dn,*p+*q);程序运行后的输出结果是
46、A)16B)10C)8D)6答案:B3 2)有以下程序main()charp=a;V/c,;q=rabcn;printf(n%d%dnH,sizeof(p),sizeof(q);)程序运行后的输出结果是A)44B)3 3C)3 4D)4 3答案:C3 3)有以下程序#define f(x)(x*x)main()int i1,i2;il=f(8)/f(4);i2=f(4+4)/f(2+2);printf(M%d,%dnil,i2);程序运行后的输出结果是A)64,28B)4,4C)4,3D)64,64答案:C3 4)有以下程序main()char al=,M,a2=m;printf(M%cnH,
47、(a l,a2);以下叙述中正确的是A)程序输出大写字母MB)程序输出小写字母mC)格式说明符不足,编译出错D)程序运行时产生出错信息答案:B3 5)有以下程序#include main()charcl=r,c2=2;cl=getchar();c2=getchar();putchar(cl);putchar(c2);当运行时输入:av回车 后,以下叙述正确的是A)变量c l 被赋予字符a,c2被赋予回车符B)程序将等待用户输入第2 个字符C)变量c l 被赋予字符a,c2中仍是原有字符2D)变量c l 被赋予字符a,c2中将无确定值答案:A3 6)有以下程序main()int k=5,n=0;
48、while(k0)switch(k)defhult:break;case 1:n+=k;case 2:case 3:n+=k;)k-;)printf(dn,n);)A)0B)4C)6D)7答案:D3 7)有以下程序main()int a=2,4,6,8,10),y=0,x,*p;p=&al;for(x=l;x3;x+)y+=px;printf(M%dn*,y);程序运行后的输出结果是A)1 0B)llC)1 4D)1 5答案:C38)有以下程序void sort(int a,int n)inti,j,t;for(i=0;i n-l;i+)for(j=i+l;j n;j+)if(ai aj)t=
49、ai;ai=aj;aj=t;)main()int aal0=1,2,3,4,5,6 7 8,9,1 0,i;sort(aa+2,5);for(i=0;i 1 0;i+)printf(n%d,*aai);printf(,n,);)程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9/0,B)l,2,7,6,3,4,5,8,9,1 0,0 1,2,7,6,5,4,3,8,9,1 0,D)1,2,9,8,7,6,5,4,3,1 0,答案:C39)有以下程序void su m(int aJ)a0=a-l+al;main()int a1 0=1,2,3,4,5,6,7,8,9,1 0;su m(
50、&a2 1);printf(%dn,a2);)程序运行后的输出结果是A)6B)7C)5D)8答案:A40)有以下程序void s w a p 1 (int cO,int cl)intt;t=cO|O;c0 0=cl0;clO=t;void swap2(int*cO,int*cl)int t;t=*cO;*cO=*cl;*cl=t;)main()int a2=3,5,2=3,5;swapl(a,a+1);swap2(&b0,&b 1 );printf(n%d%d%d%dnH,a0,al,b0,bl);)程序运行后的输出结果是A)3 5 5 3B)5 3 3 5C)3 5 3 5D)5 3 5 3