收藏 分销(赏)

C语言程序的设计A综合练习(一).doc

上传人:二*** 文档编号:4453808 上传时间:2024-09-23 格式:DOC 页数:5 大小:31KB 下载积分:5 金币
下载 相关 举报
C语言程序的设计A综合练习(一).doc_第1页
第1页 / 共5页
本文档共5页,全文阅读请下载到手机保存,查看更方便
资源描述
. . . . 期末综合练习(一) 一、单项选择题(每小题2分,共20分) 1. C语言源程序文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. c 2.设x和y均为逻辑值,则x&&y为真的条件是( )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 3. 在以下的符号常量定义中,正确的定义格式为( )。 A. #define M1 B. const int M2 20 C. #define M3 10 D. const char mark 4. for循环语句能够被改写为( )语句。 A. 复合 B. ifC.switchD. while 5. 在下面的一维数组定义中,错误的定义格式为( )。 A. int a[]={1,2,3}; B. int a[10]={0}; C. int a[]; D. int a[5]; 6.在下面的函数原型声明中,存在语法错误的是( )。 A. AA(int a, int b); B. AA(int, int); C. AA(int a; int b;); D. AA(int a, int); 7. 假定a为一个数组名,则下面存在错误的表达式为的()。 A. a[i] B. *a++ C. *a D. *(a+1) 8. 假定有定义为“int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的赋值为( )。 A. x=pa[3] B. x=*(a+3) C. x=a[3] D. x=*pa+3 9.字符串"y=%d\n"的长度为________。 A. 5 B.6 C. 4 D. 3 10. 向一个二进制文件中写入信息的函数为( )。 A. fgets() B. fputs() C. fread() D. fwrite() 二、填空题(每小题2分,共26分) 1.一个函数定义由________和函数体两部分组成。 2. 执行“printf("%c",'F'-2);”语句后得到的输出结果为________。 3.int数据类型的长度为________。 4. 表达式25/4的值为________。 5.若x=5,y=10,则执行“if(x<=y) c=3; else c=8;”语句后,c的值为________。 6. 保留字case和default出现在(if/switch/for/while)________语句中。 7. 在函数调用中执行到(return/break/continue/if)________语句时,将完毕所在函数的执行过程,返回到调用该函数的原来位置。 8. 假定二维数组的定义为“char a[M][N];”,则该数组共包含有________个字符元素。 9. 存储字符'a'需要占用存储器的________个字节空间。 10. 若一个字符串的长度为n,则存储它的字符数组的长度至少为________。 11. 假定p所指对象的值为25,p+1所指对象的值为46,则执行表达式(*p)++后,p所指对象的值为________。 12. 假定p是一个指向整数对象的指针,则用________表示该整数对象。 13.假定一个结构类型的定义为“struct B{int a[5]; char* b;};”,则该类型的理论长度为________。 三、写出以下每个程序运行后的输出结果(每小题6分,共30分) 1. #include<stdio.h> void main() { int n=4, y=0; while(n--) y+=3; printf("y=%d\n",y); } 输出结果: 2. #include<stdio.h> void main() { int i,s=0; for(i=1;i<8;i++) if(i%2==0 || i%3==0) s+=i; printf("s=%d\n",s); } 输出结果: 3. #include<stdio.h> void main() { char a[]="acdbfkmd"; int i1=0, i2=0, i=0; while(a[i]) { if(a[i]<'d') i1++; else i2++; i++; } printf("%d %d\n",i1,i2); } 输出结果: 4. #include<stdio.h> void main() { int a[8]={4,8,12,16,20,24,28,32}; int *p=a, s=0; do {s+=*p; p+=3;} while(p<a+8); printf("s=%d\n",s); } 输出结果: 5. #include<stdio.h> struct Worker { char name[15]; int age; double pay;}; void main() { struct Worker a[4]={{"abc",20,2400},{"defa",50,3600}, {"ghin",40,1800},{"jklt",36,2200}}; int i; double s=0; for(i=0; i<4; i++) s+=a[i].pay; printf("s=%8.2Lf\n",s); } 输出结果: 四、根据以下每个函数回答相应问题(每小题6分,共12分) 1. 假定使用SF(30)调用下面函数,则得到的输出结果为______________。 void SF(int x) { int i=2; while(x>=i) { if(x%i==0) {printf("%d ",i); x/=i;} i++; } } 2. 假定结点的结构类型为IntNode,它的数值域为data,指针域为next,请指出下面函数的功能。 void QC(struct IntNode* f) { //f为一个单链表的表头指针 while(f) { printf("%d ",f->data); f=f->next; } } 函数功能: 五、按题目要求编写程序或函数(每小题6分,共12分) 1. 编写一个主函数,利用while循环计算1+2+4+…+210的值,最后输出计算结果。假定计数变量用i表示,每次累乘2的变量用p表示,每次累加一个数据项值的变量用sum表示。 2. 根据函数原型“int DD(int a[], int n, int MM)”编写函数定义,利用双重for循环统计出数组a[n]中任何两个不同元素的值等于MM值的配对个数,然后返回统计结果。如假定a[i]+a[j]等于MM,同时i≠j,则为一个配对。 参考答案 一、单项选择题(每小题2分,共20分) 1.D 2. A 3. C 4. D 5. C 6. C 7. B 8. D 9. A 10. D 二、填空题(每小题2分,共26分) 1. 函数头 2. D 3.4 4. 6 5. 3 6. switch 7.return8. M*N 9. 1 10. n+1 11. 26 12. *p 13. 24 三、写出以下每个程序运行后的输出结果(每小题6分,共30分) 评分标准:根据答案正确程度酌情给分。 1. y=12 2. s=15 3. 3 5 4. s=48 5. s=10000.00 四、根据以下每个函数回答相应问题(每小题6分,共12分) 评分标准:根据答题的正确与完整程度酌情给分。 1.2 3 5 2.遍历输出由表头指针f所指向的单链表中每个结点的data域的值。 五、按题目要求编写程序或函数(每小题6分,共12分) 评分标准:根据编写程序或函数的正确与完整程度酌情给分。 1. void main() { int i=1, p=1, sum=1; //1分 while(i<=10) {p*=2; sum+=p; i++;} //4分 printf("sum=%d\n",sum); //6分 } 2.int DD(int a[], int n, int MM) { int i,j,c=0; //1分 for(i=0; i<n; i++) //2分 for(j=i+1; j<n; j++) //3分 if(a[i]+a[j]==MM) c++; //5分 return c; //6分 } 5 / 5
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服