收藏 分销(赏)

C语言习题级答案1.doc

上传人:xrp****65 文档编号:7444087 上传时间:2025-01-04 格式:DOC 页数:15 大小:99KB
下载 相关 举报
C语言习题级答案1.doc_第1页
第1页 / 共15页
C语言习题级答案1.doc_第2页
第2页 / 共15页
C语言习题级答案1.doc_第3页
第3页 / 共15页
C语言习题级答案1.doc_第4页
第4页 / 共15页
C语言习题级答案1.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、/*-【程序设计】1-功能:将两个两位数的正整数a、b合并形成一个整数放在c 中。合并的方式是: 将a数的十位和个位数依次放 在c数的个位和百位上, b数的十位和个位数依次放 在c数的十位和千位上。 例如: 当a=45,b=12, 调用该函数后, c=2514。 -*/#include stdio.h void fun(int a, int b, long *c) /*Begin*/ *c=a/10+a%10*100+b/10*10+b%10*1000; /* End */main() int a,b; long c; printf(Input a, b:); scanf(%d%d, &a,

2、&b); fun(a, b, &c); printf(The result is: %ldn, c); NONO(); NONO ( ) FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen(in.dat, r) ; wf = fopen(out.dat,w) ; for(i = 0 ; i 10 ; i+) fscanf(rf, %d,%d, &a, &b) ; fun(a, b, &c) ; fprintf(wf, a=%d,b=%d,c=%ldn, a, b, c) ; fclose(rf) ; fclose(wf) ; -【程序设计】2-功能

3、:请编一个函数void fun(int ttMN,int ppN), tt指向一个M行N列的二维数组,求出二维数组每列 中最小元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。-*/#include#include#define M 3#define N 4 void fun(int ttMN,int ppN) /*Begin*/ int i,j; for(j=0;jN;j+) ppj=tt0j; for(i=1;iM;i+) if(ttijppj) ppj=ttij; /* End */void NONO();main() int tMN=22,45,56,30, 19,

4、33,45,38, 20,22,66,40; int pN,i,j,k; printf(The original data is:n); for(i=0;iM;i+) for(j=0;jN;j+) printf(%6d,tij); printf(n); fun(t,p); printf(nThe result is:n); for(k=0;kN;k+) printf(%4d,pk); printf(n); NONO();void NONO() int i,j, array34,p4; FILE *rf, *wf ; rf = fopen(in.dat, r) ; wf = fopen(out.

5、dat, w) ; for (i=0; i 3; i+) for (j=0; j 4; j+) fscanf(rf, %d, &arrayij); fun(array,p); for (j=0; j 4; j+) fprintf(wf, %7d, pj); fprintf(wf, n); fclose(rf) ; fclose(wf) ; /*-【程序填空】1-功能:编程求任意给两个日期(Y0年M0月DO日和Y1年M1月D1日) 相差的天数。-*/main() int y1,m1,d1,y2,m2,d2,n,i; printf(y1,m1,d1=); scanf(%d,%d,%d,&y1,&m

6、1,&d1); /*FILL*/ if(m112|d1_ mday(y1,m1)_ _) exit(0); printf(y2,m2,d2=);scanf(%d,%d,%d,&y2,&m2,&d2); /*FILL*/ if(m212|d2_ mday(y2,m2)_) exit(0); if(y1y2|y1=y2&m1m2|y1=y2&m1=m2&d1d2) n=y1; y1=y2; y2=n; n=m1; m1=m2; m2=n; n=d1; d1=d2; d2=n; else /*FILL*/ n=yend(y1,m1,d1)+_ yday(y2,m2,d2)_; /*FILL*/ fo

7、r(i=_ y1+1_;i%d.%d.%d:n=%dn,y1,m1,d1,y2,m2,d2,n);int f(int y) return(y%4=0&y%100!=0|y%400=0);int mday(int y,int m) return(31-(m=4)+(m=6)+(m=9)+(m=11)-(3-f(y)*(m=2);int yday(int y,int m,int d) return(d+31*(m1)+(m3)+(m5)+(m7)+(m8)+(m10)+30*(m4)+(m6)+(m9)+(m11)+(28+f(y)*(m2);int yend(int y,int m,int d)

8、 return(365+f(y)-yday(y,m,d);/*-【程序填空】2-功能:请编写一个函数fun,将字符数组ss中字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。-*/#include#includevoid fun(char ss)int i,d;d=strlen(ss);/*FILL*/for(i=1;i=a&ssi=z)/*FILL*/_ ssi=ssi-32_;main() char a80; printf(给字符串赋值:n); gets(a); printf(输出原字符串:n); puts(a); /*FILL*/_ fun(a)_; prin

9、tf(输出原字符串:n); puts(a);/*- 【程序改错】1-功能:为一维数组输入10个整数;将其中最小的数与第一个数 对换,将最大的数与最后一个数对换,输出数组元素。-*/main() int a10; void input(); void output(); void max_min(); input(a,10); max_min(a,10); output(a,10);void input(int *arr,int n) int *p,i; p=arr; printf(please enter 10 integers:n); for(i=0;in;i+) /*ERROR*/ sca

10、nf(%d,p);void max_min(int *arr,int n) int *min,*max,*p,t; min=max=arr; for(p=arr+1;parr+n;p+) /*ERROR*/ if(*p*max) max=p; else if(*p*min) min=p; t=*arr;*arr=*min;*min=t;/*ERROR*/ if(max=arr) max=min; t=*(arr+n-1); *(arr+n-1)=*max; *max=t;void output(int *arr,int n) int *p,i; p=arr; printf(The change

11、d array is:n); /*ERROR*/ while(i=0;in;i+) printf(%3d,*p+); printf(n);【改错1】错误【学生答案】scanf(%d,p);【参考答案】scanf(%d,p+);scanf(%d,arri);scanf(%d,p+i);scanf(%d,arr+i);=【改错2】错误【学生答案】if(*p*max)if(*max*p)=【改错3】错误【学生答案】if(max=arr) max=min;【参考答案】if(max=arr)=【改错4】错误【学生答案】while(i=0;in;i+)【参考答案】for(i=0;ii;i+)for(p=a

12、rr;parr+n;)for(i=0;i=i;i+)for(p=arr;p=p;)/*- 【程序改错】2-功能:统计出若干个学生的平均成绩,最低分以及得最低分的人数。例如:输入10名学生的成绩分别为92,87,68,56,92,84,67, 75,92,66,则输出平均成绩为77.900002,最低高分为56.000000,得最 低分的人数为1人。-*/#include float Min=0;int J=0;float fun(float array,int n) int i;float sum=0,ave; Min=array0; for(i=0;iarray i) Min=array i

13、; /*ERROR*/ sum=+array i; /*ERROR*/ ave=sumn; for(i=0;in;i+) /*ERROR*/ if(arrayi=Min) J+; return(ave);main( ) float a10,ave; int i=0; for(i=0;i10;i+) scanf(%f,&ai); ave=fun(a,10); printf(ave=%fn,ave); printf(min=%fn,Min); printf(Total:%dn,J);【改错1】错误【学生答案】sum=+array i;【参考答案】sum+=arrayi;sum=sum+array

14、i;=【改错2】错误【学生答案】ave=sumn;【参考答案】ave=sum/n;=【改错3】错误【学生答案】if(arrayi=Min) J+;【参考答案】if(arrayi=Min) J+;if(Min=arrayi) J+;1. 下列选项中,( D )是合法的浮点数.A、eB、0e0.C、-1e0x3D、2.12. C语言程序中,当调用函数时(B)。A、实参和虚参可以共用存储单元B、实参和虚参各占一个独立的存储单元C、计算机系统自动确定是否共用存储单元D、可以由用户指定是否共用存储单元3. 若有int w=12;,对以下程序段,描述正确的是(B).while(w=0) w=w-1;A、循

15、环是无限循环B、循环体执行了10次C、循环体语句执行了一次D、循环体语句一次也不执行4. 合法的数组定义是(B)A、char s=string;B、int a=string;C、int a5=0,1,2,3,4,5;D、char a=0,1,2,3,4,5;5. 已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)A、scanf(%d %d %d,&i,&j,&k);B、scanf(%2d%2d%2d,&i,&j,&k);C、scanf(%d,%d,%d,&i,&j,&k);D、scanf(i=%d,j=%d,k=%d,

16、&i,&j,&k);6. 下列字符序列中,可用作C标识符的一组字符序列是(A)。A、D56,r_1_2,name,_st_1B、S.b,sum,average,_aboveC、class,day,lotus_1,2dayD、#md,&12x,month,student_n!7执行以下程序段后,输出结果和a的值是(C)。 int a=10; printf(%d,a+);A、11 和 10B、11 和 11C、10 和 11D、10 和 108. 若有int a=1,b=2,c=3;则执行下列语句后c的值为(D)。if(ac)b=a;a=c;c=b;A、不一定B、3C、1D、29. 以下对整型数组

17、a的正确说明是:CA、int n = 10, an;B、C、D、int a(10);10. 结点插入到链表末尾的语句组是 D 。 A、s-next = NULL; p = p-next; p-next = s;B、p = p-next; s-next = p; p-next = s;C、p = (*p).next; (*s).next = (*p).next; (*p).next = s;D、p = p-next; s-next = p -next; p -next = s;11. 已知int k=67; 则表达式k/10的值为;AA、6.70B、6.7C、6D、712. C语言中while和

18、do-while循环的主要区别是 BA、While的循环控制条件比do-while的循环控制条件严格B、do-while的循环体至少无条件执行一次C、do-while循环体不能是复合语句D、do-while允许从外部转到循环体内13. 以下能对一维数组a进行正确初始化的语句是(B)。A、int a10=10*1;B、int a=0;C、int a10=(0,0,0,0,0)D、int a10=;14. 以下标识符中,不能作为合法的C用户定义标识符的是(C)。A、_doubleB、_123C、ifD、INT15. 关于return语句,下列正确的说法是(C)。A、只能在除主函数之外的函数中出现一

19、次B、只能在主函数中出现C、可以在同一个函数中出现多次,但是只能执行其中的一个D、必须在每个函数中出现16. 表达式,0x13&0x17的值是(A)。A、0x13B、0xecC、0x17D、0xf817. 若x,y都为二进制数,x=00000010,b=00000011则x&y的结果是(A)。A、00000010B、00000000C、00000001D、0000001118. 以下程序运行后的输出结果是 A 。#include struct NODE int num; struct NODE *next; ; main() struct NODE *p, *q, *r; int sum =

20、0; p = (struct NODE *)malloc(sizeof(struct NODE); q= (struct NODE *)malloc(sizeof(struct NODE); r= (struct NODE *)malloc(sizeof(struct NODE); p -num = 1; q - num = 2; r - num = 3; p - next = q; q - next = r ; r - next = NULL; sum += q - next - num; sum += p - num; printf(“%dn”, sum); A、4B、3C、5D、619.

21、 以下对数组初始化错误的是:CA、int a23=1,2,3,4,5B、int a23=1,2,3,4;C、int 2=1,2,3,4,5,6;D、int a3=1,2,3,4,5,6;20. 以下标识符中,不能作为合法的C用户定义标识符的是(B)。A、_123B、voidC、a3_b3D、IF21. 设j和k都是int类型,则for循环语句 for(j=0,k=-1;k=1;j+,k+) printf(*n);(B)。A、循环体一次也不执行B、是无限循环C、循环结束的条件不合法D、循环体只执行一次22. 以下能对二维数组a进行正确初始化的语句是(A)。A、int a3=1,2,3,4,5,6

22、;B、int a24=1,2,3,4,5,6;C、int a3=1,0,1,1,1;D、int a2=1,0,1,5,2,3;23. 以下语句中:当字符串s1和s2相等时,能够输出OK的是(C)A、if(strcmp(s1,s2) puts(OK);B、if(s1=s2) printf(OK);C、if(!strcmp(s1,s2) puts(OK);D、if(s10=s20) printf(OK);24. 以下数据中,不正确的数值或字符常量是(A)。A、cB、3e-5C、bD、5025. 设有说明语句:char a=72;则变量a(A)。A、包含1个字符B、包含2个字符C、说明不合法D、包含

23、3个字符26. 设有说明:char c; int x; double z;则表达式c*x+z值的数据类型为 A A、doubleB、charC、intD、float27下面标识符中,合法的用户标识符为(C)A、-intB、(int)(1.6)C、_floatD、return28. C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是(C)。A、voidB、doubleC、intD、float29. C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是(C)。A、由实参传给形参,再由形参传回给实参B、由用户指定的传递方式C、单向值传递D、地址传递30. 若希望当A的值为奇数时,表

24、达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是(A)。A、!(A%2)B、A%2C、A%2=1D、!(A%2=0)判断1. C程序中有调用关系的所有函数必须放在同一个源程序文件中。 F2. C语言中%运算符的运算对象必须是整型. T3. C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。 T4. 整数 -32100可以赋值给int型和long int型变量。 T5. 逻辑表达式-5&!8的值为1. F6. 在一个函数内的复合语句中定义的变量在本函数范围内有效. F7. 在C语言中char str6=hello,可以将字符串hello正确赋给数组. T8. 若有说明int c;则while(c=getchar();是正确的C语句。 T9. 如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准 T10. 若 a=3,b=2,c=1 则关系表达式(ab)=c 的值为真。 T

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 应用文书 > 其他

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服