ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:20.73KB ,
资源ID:9948328      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9948328.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言习题1.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言习题1.docx

1、C语言习题1一、选择题(1) 用C语言编写的代码程序( ) /考点:程序A) 可立即执行 B) 是一个源程序C) 经过编译即可执行 D) 经过编译解释才能执行 (2) 结构化程序由三种基本结构组成,三种基本结构组成的算法( ) /考点:三种结构A) 可以完成任何复杂的任务 B) 只能完成部分复杂的任务C) 只能完成符合结构化的任务 D) 只能完成一些简单的任务 (3) 以下定义语句中正确的是( ) /赋值、指针A) char a=A b=B; B) float a=b=10.0;C) int a=10,*b=&a; D) float *a,b=&a; (4) 下列选项中,不能用作标识符的是(

2、) /标识符A) _1234_ B) _1_2 C) int_2_ D) 2_int_(5) 有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中不正确的表达式是( )A) a=a+b=b+ B) w%(int)(a+b)C) (c+w)%(int)a D) w=a=b; (6) 有以下程序 /运算符的优先级、结合性main() int m=3,n=4,x;x=-m+;x=x+8/+n;printf(“%dn”,x);程序运行后的输出结果是( )A) 3 B) 5 C) -1 D) -2 (7) 有以下程序 /+运算main() char a=a

3、,b;printf(“%c,”,+a);printf(“%cn”,b=a+);程序运行后的输出结果是( )A) b,b B) b,c C)a,b D) a,c (8) 有以下程序 /各数整数的表示与输出main() int m=0256,n=256;printf(“%o %on”,m,n);程序运行后的输出结果是( )A) 0256 0400 B) 0256 256 C) 256 400 D) 400 400 (9) 有以下程序 /输出控制符少的情况main() int a=666,b=888;printf(“%dn”,a,b);程序运行后的输出结果是( )A) 错误信息 B) 666 C)

4、888 D) 666,888 (10) 有以下程序 /循环、switchmain() int i;for(i=0;i3;i+)switch(i)case 0:printf(“%d”,i);case 2:printf(“%d”,i);default:printf(“%d”,i);程序运行后的输出结果是( )A) 022111 B) 021021 C) 000122 D) 012 (11) 若x和y为整型数,以下表达式中不能正确表示数学关系|x-y|10的是( )/表达式A) abs(x-y)-10& x-y10C) (x-y)10 D) (x-y)*(x-y)b) if(bc)printf(“%

5、d”,d+ +1);elseprintf(“%d”,+d +1);printf(“%dn”,d);程序运行后的输出结果是( )A) 2 B) 3 C) 43 D) 44 (13) 下列条件语句中,功能与其他语句不同的是( ) /if语句的条件A) if(a) printf(“%dn”,x); else printf(“%dn”,y);B) if(a=0) printf(“%dn”,y); else printf(“%dn”,x);C) if (a!=0) printf(“%dn”,x); else printf(“%dn”,y);D) if(a=0) printf(“%dn”,x); else

6、 printf(“%dn”,y); (14) 有以下程序 /循环、continue、breakmain() int i=0,s=0;for (;)if(i=3|i=5) continue;if (i=6) break;i+;s+=i;printf(“%dn”,s);程序运行后的输出结果是( )A) 10 B) 13 C) 21 D) 程序进入死循环 (15) 若变量已正确定义,要求程序段完成求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=1;whil

7、e(i=5)p*=i; i+;D) i=1;p=1;dop*=i; i+; while(i=5); (16) 有以下程序 /输入与输出main() char a,b,c,d;scanf(“%c,%c,%d,%d”,&a,&b,&c,&d);printf(“%c,%c,%c,%cn”,a,b,c,d); 若运行时从键盘上输入:6,5,65,66。则输出结果是( )A) 6,5,A,B B) 6,5,65,66 C) 6,5,6,5 D) 6,5,6,6 (17) 以下能正确定义二维数组的是( ) /二维数组的定义A) int a3; B) int a3= 2*3;C) int a3=; D) i

8、nt a23=1,2,3,4; (18) 有以下程序 /循环的结束条件、函数的调用int f(int a) return a%2; main() int s8=1,3,5,2,4,6,i,d=0;for (i=0;f(si);i+) d+=si;printf(“%dn”,d);程序运行后的输出结果是( )A) 9 B) 11 C) 19 D) 21 (19) 若有以下说明和语句,int c45,(*p)5;p=c;能正确引用c数组元素的是( ) /二维数组的指针表示法/指向一维数组的指针A) p+1 B) *(p+3) C) *(p+1)+3 D) *(p0+2) (20) 有以下程序 /指针

9、的赋值操作main() int a=7,b=8,*p,*q,*r;p=&a;q=&b;r=p; p=q;q=r;printf(“%d,%d,%d,%dn”,*p,*q,a,b);程序运行后的输出结果是( )A) 8,7,8,7 B) 7,8,7,8 C) 8,7,7,8 D) 7,8,8,7 (21) s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是 ( ) /字符串大小的比较函数A) if(s1s2)S; B) if(strcmp(s1,s2)S;C) if(strcmp(s2,s1)0) S; D) if(strcmp(s1,

10、s2)0)S; (22) 设有定义语句 /一维数组的指针表示法、指针运算int x6=2,4,6,8,5,7,*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是( )A) for(i=0;i6;i+) printf(“%2d”,*(p+);B) for(i=0;i6;i+) printf(“%2d”,*(p+i);C) for(i=0;i6;i+) printf(“%2d”,*p+);D) for(i=0;i6;i+) printf(“%2d”,(*p)+); (23) 有以下程序 /指针的赋值#include main()int a=1,2,3,4,5,6,7,8,9,1

11、0,11,12,*p=a+5,*q=NULL;*q=*(p+5); printf(“%d %dn”,*p,*q);程序运行后的输出结果是( )A) 运行后报错 B) 6 6 C) 6 11 D) 5 10 (24) 有以下定义和语句 /一维数组的指针表示法、指针数组int a32=1,2,3,4,5,6,*p3;p0=a1;则*(p0+1)所代表的数组元素是( )A) a01 B) a10 C) a11 D) a12(25) 有以下程序 /二维字符串数组main() char str10=“China”,”Beijing”,*p=str0; printf(“%sn”,p+10); 程序运行后的

12、输出结果是( )A) China B) Bejing C) ng D) ing (26) 有以下程序 /字符指针、字符串的输出 main()char s=“ABCD”,*p;for(p=s+1;ps+4;p+)printf(“%sn”,p);程序运行后的输出结果是( )A) ABCD B) A C) B D) BCDBCD B C CDCD C D DD D(27) 在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则( ) /间接递归概念A) 称为函数的直接递归调用 B) 称为函数的间接递归调用C) 称为函数的循环调用 D) C语言中不允许这样的递归调

13、用(28) 已有定义:int i,a10,*p;,则合法的赋值语句是( ) /数组与指针A) p=100; B) p=a5; C) p=a2+2; D) p=a+2;(29) 以下叙述中正确的是( ) /局部变量、全局变量、生命期A) 局部变量说明为static存储类,其生存期将得到延长B) 全局变量说明为static存储类,其作用域将被扩大C) 任何存储类的变量在未赋初值时,其值都是不确定的D) 形参可以使用的存储类说明符与局部变量完全相同/形参不能用static (30) 设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是( ) /位运算A) c1c2 B) c1&

14、c2 C) c2 D) c1|c2(31) 程序中对fun函数有如下说明 /各类指针、指向函数的指针等void *fun(); 此说明的含义是 ( )A) fun函数无返回值B)fun函数的返回值可以是任意的数据类型C) fun函数的返回值是无值型的指针类型D) 指针fun指向一个函数,该函数无返回值(32) 有以下程序 /字符指针、字符串的结束main() char s=“Yesn/No”,*ps=s;puts(ps+4);*(ps+4)=0;puts(s);程序运行后的输出结果是(选项D中的第一行是空行)( )A) n/No B) /No C) n/NO D) Yes Yes Yes /N

15、o /No /No Yes(33) 有以下程序 /负数的补码表示 main() unsigned int a;int b=-1;a=b;printf(“%u”,a);程序运行后的输出结果是( )A) -1 B) 65535 C) 32767 D) -32768(34) 有以下程序 /指针为形式参数、数组名为实际参数void fun(int *a,int i,int j) int t;if(ij) t=ai;ai=aj;aj=t;i+; j-;fun(a,i,j);main() int x=2,6,1,8,i;fun(x,0,3);for(i=0;inumB) p-num C) (*p).num

16、 D) stu3.age(36) 有以下程序 /一维数组、冒泡排序main() int x=1,3,5,7,2,4,6,0,i,j,k;for(i=0;i=i;j-) if(xj+1xj)k=xj;xj=xj+1;xj+1=k; for(i=0;i3;i+) for(j=4;jxj) k=xj;xj=xj+1;xj+1=k;for (i=0;i3;i+) for(j=4;jxj+1) k=xj;xj=xj+1;xj+1=k; for (i=0;i8;i+) printf(“%d”,xi); printf(“n”);程序运行后的输出结果是:( )A) 75310246 B) 01234567 C

17、) 76310462 D) 13570246(37) 有如下程序 /文件#include main()FILE*fp1; fp1=fopen(“f1.txt”,”w”); fprintf(fp1,”abc”); fclose(fp1);若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为( )A) goodabc B) abcd C) abc D) abcgood4850.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出正确的选项。#include /链表struct

18、node char data; struct node *next;(38)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=(39); q-next=p; q=(40); s+;p-next=0;return h;main() char str=“link list”;struct node *head;head=CreatList

19、(str);.(38) A) char * B) struct node C) struct node* D) char(39) A) *s B) s C) *s+ D) (*s)+(40) A) p-next B) p C) s D) s-next二、填空题(1) 以下程序段的输出结果是11 。int i=9;printf(“%on”,i);(2) 以下程序运行后的输出结果是25 21 37 。main() int a,b,c;a=25;b=025;c=0x25;printf(“%d%d%dn”,a,b,c);(3) 以下程序运行后的输出结果是24 。main() int p7=11,13,

20、14,15,16,17,18;int i=0,j=0;while(i7 & pi%2=1) j+=pi+;printf(“%dn”,j);(4) 以下程序运行后的输出结果是2 1 。main() int x=1,y=0,a=0,b=0;switch(x) case 1:switch(y) case 0:a+; break;case 1:b+; break; case 2:a+;b+; break; printf(“%d%dn”,a,b);(5) 以下程序运行后的输出结果是92 。main() int a44=1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18;int

21、 i=0,j=0,s=0;while(i+4)if(i=2|i=4) continue;j=0;do s+= aij; j+; while(j4);printf(“%dn”,s);(6) 以下程序运行后的输出结果是gae 。main () char a=“Language”,b=“Programe”;char *p1,*p2; int k;p1=a; p2=b;for(k=0;k=7;k+)if(*(p1+k)=*(p2+k) printf(“%c”,*(p1+k);(7) 以下程序运行后的输出结果是*2*4*6*8* 。main() char a=“123456789”,*p; int i=

22、0;p=a;while(*p) if(i%2=0) *p=*;p+;i+; puts(a);(8) 以下程序中, for循环体执行的次数是4 。#defineN 2#defineM N+1#defineK M+1*M/2main() int i;for(i=1;iK;i+) . .(9) 通过函数求f(x)的累加和,其中f(x)x21main() printf(“The sum=%dn”,SunFun(10);SunFun(int n) int x,s=0; for(x=0;x=n;x+)s+=F(x ); return s;F( int x)return x*x+1 );(10) 以下程序从

23、终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。main() int i,a20,sum,count; sum=count=0; for(i=0;i20;i+)scanf(“%d”,&ai ); fro(i=0;i0) count+; sum+=ai ; printf(“sum=%d,count=%dn”,sum,count);(11) 以下程序中,函数 sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。#defineM 2#defineN 4void SumColumMin(int aMN,int *sum) int i,j,k,s=0;for(i=0;iN;i+) k=0;for(j=1;jaji)k=j;s+= aki; *sum =s;main() int xMN=3,2,5,1,4,1,8,3,s;SumColumMin(x,&s );printf(“%dn”,s);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1