C语言程序设计期末考试试卷B

上传人:wan****21 文档编号:156190138 上传时间:2022-09-26 格式:DOC 页数:12 大小:42.51KB
收藏 版权申诉 举报 下载
C语言程序设计期末考试试卷B_第1页
第1页 / 共12页
C语言程序设计期末考试试卷B_第2页
第2页 / 共12页
C语言程序设计期末考试试卷B_第3页
第3页 / 共12页
资源描述:

《C语言程序设计期末考试试卷B》由会员分享,可在线阅读,更多相关《C语言程序设计期末考试试卷B(12页珍藏版)》请在装配图网上搜索。

1、一、选择题(每题1.5分,共计45分) 1、以下选项中合法的标识符是【 】A1_1B1-1C_11D1_ _ 2、若函数中有定义语句: int k; ,则【 】A系统将自动给k赋初值0B这时k中的值无定义C系统将自动给k赋初值-1D这时k中无任何值 3、一下选项中,能用作数据常量的是【 】Ao115B0118C1.5e1.5D115L 4、设有定义: int x=2; ,一下表达式中,值不为6的是【 】Ax*=x+1BX+,2*xCx*=(1+x)D2*x,x+=2 5、程序段: int x=12; double y=3.141593; printf(%d%8.6f,x,y); 的输出结果是【

2、 】A123.141593B12 3.141593C12,3.141593D123.1415930 6、若有定义语句: double x,y,*px,*py; 执行了px=&x; py=&y; 之后,正确的输入语句是【 】Ascanf(%f%f,x,y);Bscanf(%f%f &x,&y);Cscanf(%lf%le,px,py);Dscanf(%lf%lf,x,y); 7、一下是if语句的基本形式: if(表达式) 语句,其中表达式【 】A必须是逻辑表达式B必须是关系表达式C必须是逻辑表达式或关系表达式D可以是任意合法的表达式 8、有以下程序#include main() int x; s

3、canf(%d,&x); if(x=3) ; else if(x!=10) printf(%dn,x);程序运行时,输入的值在哪个范围才会有输出结果【 】A不等于10的整数B大于3且不等于10的整数C大于3或等于10的整数D小于3的整数 9、有以下程序#include main( ) int a=1,b=2,c=3,d=0; if (a=1 & b+=2) if (b!=2|c-!=3) printf(%d,%d,%dn,a,b,c); else printf(%d,%d,%dn,a,b,c); else printf(%d,%d,%dn,a,b,c);程序运行后输出结果是【 】A1,2,3B

4、1,3,2C1,3,3D3,2,1 10、假设以下程序段中的变量已正确定义for(i=0;i4;i+,j+) for(k=1;k3;k+); printf(*);程序段的输出结果是【 】A*B*C*D* 11、有以下程序#include main() char *s=ABC; do printf(%d,*s%10); s+; while (*s);注意:字母A的ASCII码值为65。程序运行后的输出结果是【 】A5670B656667C567DABC 12、设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段【 】An=0; while(ch=getchar()!=n)

5、n+;Bn=0; while(getchar()!=n) n+;Cfor(n=0;getchar()!=n;n+);Dn=0; for(ch=getchar();ch!=n;n+); 13、有以下程序#include main() int a1,a2; char c1,c2; scanf(%d%c%d%c,&a1,&c1,&a2,&c2); printf(%d,%c,%d,%c,a1,c1,a2,c2);若通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b 则正确的输入格式是(以下_代表空格,代表回车) 【 】A12a34b

6、B12_a_34_bC12,a,34,bD12_a34_b 14、有以下程序#include int f(int x,int y) return (y-x)*x);main() int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c); printf(%dn,d);程序运行后的输出结果是A10B9C8D7 15、有以下程序#include void fun(char *s) while(*s) if (*s%2= =0) printf(%c,*s); s+; main() char a =good; fun(a); printf(n);注意:字母a的ASCII码值为97,程序运

7、行后的输出结果是【 】AdBgoCgodDgood 16、有以下程序#include void fun(int *a,int *b) int *c; c=a;a=b;b=c;main( ) int x=3,y=5,*p=&x,*q=&y; fun(p,q); printf(%d,%d,*p,*q); fun(&x,&y);printf(%d,%dn,*p,*q);程序运行后输出的结果是【 】A3,5,5,3B3,5,3,5C5,3,3,5D5,3,5,3 17、有以下程序#include void f(int *p,int *q);main( ) int m=1,n=2,*r=&m; f(r,

8、&n); printf(%d,%d,m,n);void f(int *p,int *q)p=p+1;*q=*q+1;程序运行后的输出结果是【 】A1,3B2,3C1,4D1,2 18、以下函数按每行8个输出数组中的数据#include void fun(int *w,int n) int i; for(i=0;in;i+) _ printf(%d ,wi); printf(n);下划线出应填入的语句是【 】Aif(i/8= =0) printf(n);Bif(i/8= =0) continue;Cif(i%8= =0) printf(n);Dif(i%8= =0) continue; 19、若

9、有以下定义int x10,*pt=x;则对数组元素的正确引用是【 】A*&x10B*(x+3)C*(pt+10)Dpt+320、设有定义:char s81;int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是【 】Agets(s);Bwhile(si+=getchar()!=n); si=0;Cscanf(%s,s);Ddoscanf(%c,&si);while(si+!=n); si=0; 21、有以下程序#include main() char *a =abcd,ef,gh,ijk; int i; for(i=0;i4;i+) printf(%c,*

10、ai);程序运行后的输出结果是【 】AaegiBdfhkCdfhkDabcdefghijk22、以下选项中正确的语句组是【 】Achar s; s=BOOK!;Bchar *s; s=BOOK!;Cchar s10; s=BOOK!;Dchar *s; s=BOOK!; 23、有以下程序#include int fun(int x,int y) if(x= =y) return (x); else return(x+y)/2);main() int a=4,b=5,c=6; printf(%dn,fun(2*a,fun(b,c);程序运行后的输出结果是【 】A3B6C8D12 24、设函数中有

11、整型变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是【 】AautoBregisterCstaticDauto 或register 25、有以下程序#include int b=2;int fun(int *k) b=*k+b; return (b); main() int a10=1,2,3,4,5,6,7,8,i;for(i=2;i4;i+) b=fun(&ai)+b; printf(%d ,b);printf(n);程序运行后的输出结果是【 】A10 12B 8 10C10 28D10 16 26、有以下程序#include #define PT 3.5 ;#define

12、 S(x) PT*x*x ;main( ) int a=1,b=2 ; printf(%4.1fn,S(a+b); 程序运行后的输出结果是【 】A14.0B31.5C7.5D程序有错无输出结果 27、有以下程序#include struct ord int x,y; dt2=1,2,3,4;main() struct ord *p=dt; printf(%d,+p-x); printf(%dn,+p-y);程序的运行结果是【 】A1,2B2,3C3,4D4,1 28、设有宏定义: #define IsDIV(k,n) (k%n=1)?1:0)且变量m已正确定义并赋值, 则宏调用:IsDIV(m

13、,5)&IsDIV(m,7)为真时所要表达的是【 】A判断m是否能被5或者7整除B判断m是否能被5和7整除C判断m被5或者7整除是否余1D判断m被5和7整除是否都余1 29、有以下程序#include main() int a=5,b=1,t; t=(a2)|b; printf(%dn,t);程序运行后的输出结果是【 】A21B11C6D1 30、有以下程序#include main() FILE *f; f=fopen(filea.txt,w); fprintf(f,abc); fclose(f);若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt

14、的内容为【 】AhelloabcBabcloCabcDabchello 二、填空题(每空2分,共30分)1、表达式(int)(double)(5/2)+2.5)的值是_。2、若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(_,x/y);补充完整,使其输出的计算结果形式为:x/y=11。3、有以下程序#include main( ) char c1,c2; scanf(“&c”,&c1); while(c190) scanf(“&c”,&c1); c2=c1+32; printf(“&c, &cn”,c1,c2);程序运行输入65回车后,能否输出结果、结束运行

15、(请回答能或不能)_ 。 4、以下程序运行后的输出结果是_。#include main( )int k=1,s=0;doif(k&2)!=0)continue;s+=k;k+;while(k)10);printf(“s=&d/n”,s); 5、下列程序运行时,若输入labced12df 输出结果为_。 #include main( )char a =0,ch;while(ch=getchar()!=n)if(a&2!=0&(cha&ch=z) ch=ch-a+A;a+;putchar(ch);printf(“n”);6、有以下程序,程序执行后,输出结果是_。#include void fun

16、(int *a)a0=a1;main()int a10=10,9,8,7,6,5,4,3,2,1,i;for(i=2;i=0;i-) fun&a;for(i=0;i10;i+) printf(“&d”,a);printf(“n”);7、请将以下程序中的函数声明语句补充完整#include int_ ;main( )int x,y,(*p)( );p=max;printf(“&dn”,&x,&y);Int max(int a,int b)return (ab/a:b);8、以下程序用来判断指定文件是否能正常打开,请填空#include main( ) FILE *fp;if (fp=fopen(

17、“test.txt”,”r”)=_)printf(“未能打开文件!n”);elseprintf(“文件打开成功!n”);9、下列程序的运行结果为_。#include #include struct Aint a; char b10; double c;void f (struct A *t);main()struct A a=(1001,”ZhangDa”,1098,0);f(&a);printf(“&d,&s,&6,ifn”,a.a,a.b,a.c);void f(struct A *t)strcpy(t-b,”ChangRong”); 10、以下程序把三个NODETYPE型的变量链接成一个

18、简单的链表,并在while循环中输出链表结点数据域中的数据,请填空#include struct nodeint data; struct node *next;typedef struct node NODETYPE;main()NODETYPE a,b,c,*h,*p;a. data=10;b.data=20;c.data=30;h=&a;b. next=&b;b.next=&c;c.next=0;p=h;while(p)printf(“&d”,p-data);_; 三、程序改错题(10分)下列给定程序功能是:读入一行英文文本,将每一个英文单词的第一个字母改写成大写字母然后输出此文本。例如

19、:若输入“good luck!”则输出”Good Luck”。 请修函数top中的错误使其能得出正确的结果。注意不要修改主函数,不要增删程序行或更改程序的结构。#include#include#include/*错误区*/ void top(char s)int i=0;for(;*s;*s+)if(i)if(*s= )i=0;elseif(*s!= )i=1;*s=toupper(*s);main()char str81;printf(nPlease enter an English text line:);gets(str);printf(nnBefore changing:n%s,str

20、);top(str);printf(nAfter changing:n%sn,str);四、程序编写(15分)该函数实现的功能是:求能整除k且是偶数的数,把这些数保存在数组a中,并按大到小输出。例如:当k=40时,依次输出40、20、10、4、2。注意:部分源程序给出如下。请补充fun函数。#include#includevoid fun(int k,int a)/*请开始编写*/main()int k=1;int a100;printf(nPlease input kn);scanf(%d,&k);fun(k,a);C语言程序设计(B卷)答案一、选择题 1-10:CBDDA CDBCB11-

21、20:CDABA BACBC21-30:ADBCC CBDAC二、填空题(1)4(2)x/y=%d(3)能(4)s=0(5)1AbCeDf2dF(6)7777654321(7)max(int a,int b)(8)NULL(9)1001,ChangRong,1098.0(10)p=pnext 三、程序改错题void top(char s) 改为void top(char *s)for(;*s;*s+) 改为for(;*s;s+)四、程序编写#include#includevoid fun(int k,int a)int i;int j=0;for(j=1;i=0;i-)printf(%d,ai);main()int k=1;int a100;printf(nPlease input kn);scanf(%d,&k);fun(k,a);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!