C语言笔试练习题汇编.pdf
《C语言笔试练习题汇编.pdf》由会员分享,可在线阅读,更多相关《C语言笔试练习题汇编.pdf(93页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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答案
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 笔试 练习题 汇编
限制150内