C语言程序设计样卷详解.docx
- 文档编号:23672034
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:21
- 大小:437.45KB
C语言程序设计样卷详解.docx
《C语言程序设计样卷详解.docx》由会员分享,可在线阅读,更多相关《C语言程序设计样卷详解.docx(21页珍藏版)》请在冰豆网上搜索。
C语言程序设计样卷详解
解(供参考,若发现错误,请自行更正)
样卷内容并非期末考试试卷内容,也不承诺在期末考试中出现或不出现相同或相似的试题。
期末考试试卷难度应该比样卷难度高很多。
样卷不提供参考答案或标准答案。
选择◎○□※□○◎
1、
A
B
C反例如/*hello*/inta;
D
2、
A关键字、不可用
B减号
C数字开头
D可以
3、
An定义没问题,但初值错
B
C定义时连续的写等于、不行
Ddouble拼错了
4、
A典型错
B拆开后,用或逻辑合并起来,可以
C标准推荐写法
D用相反的区域选择、加取相反逻辑,可以
5、带入原式
a
a:
c c: d 1<2? 1: 3<4? 3: 4 1? 1: 1? 3: 4 1? 1: (1? 3: 4) 》》 If (1) {1}//进入此逻辑就结束,结果为1 Else If (1) {3} Else {4} 6、 A正解 B没有AND这个词 C典型错误 D一个&号,错 7、 Adefine的预定义表示程序处理前先替换为数字,等价于floatb[8],正确 B典型错误,n初始未知,只有敲入之后才得知,此恰与数组定义要求违背 C类似B项,不可用变量数字定义数组规模 D非中括号写法,错 8、无论多少维,每对中括号内的数字范围只能从0~n-1 A简化为a[0][2],正 Ba[1][3],正 Ca[2][0],正 Da[0][4],第二对中括号的4错误 9、右图为vc6内部存储显示 A不是完全相同 B长度不同 Ca和b中都存放的是字符(单个字母) D6>5,正解 10、右侧程序意图将float转换为float 绝对值,但在函数返回类型写成int 最后输出结果发现输出精度损失 可知由函数定义所决定 A B C D正解 选择题统计信息: 完全不涉及逻辑和运算的考察: 1、2、3、7、8、9、10 涉及逻辑思考、运算考察: 4、5、6、 填空题◎○□※□○◎ 1、7 2、18 3、3 4、此题运行有错,可发现考察static,里面i应替换为m: 2,4, 5、 sum=0; t=i*t; sum+=t; 6、 voidfact(intaa[],intn) sum=0; aa[i]==sum 填空题统计 1Switch-case+break 2两层循环求累计、累乘 3简单的函数应用 4Static变量-电脑暗中记录上次的数 5循环累计 6函数-累计-判断 涉及到的知识点: 1,判断if(==,不是=)及switch-case(+break) 2,Sum类变量初始化清零 3,函数写法 4,数组作为函数的输入部分(专用名词叫形参)的写法 5,Static的记录上次数值特性 6,隐含的考printf,要求对printf掌握扎实 编程题◎○□※□○◎ 1、 基础写法用%1d是最简单的方法: #include voidmain() { intge,shi,bai,qian; scanf(“%1d%1d%1d%1d”,&qian,&bai,&shi,&ge); printf(“%d%d%d%d”,ge,shi,bai,qian); } 扩展写法: 用循环,则可处理n位的 #include voidmain() { inti; scanf("%d",&i); while(i>0) { printf("%d",i%10); i=i/10; } } 2、 x<-10中,y的结果会因x+2在分母位置而出现小数,float类型 #include voidmain() { floatx,y; scanf("%f",&x); if(x<-10)//1 { y=1/(x+2); } if(-10<=x&&x<0)//2 { y=x+3; } if(0<=x&&x<10)//3 { y=x*x+3*x-5; } if(x>=10)//4 { y=x*x*x-2; } printf("%f",y); } 3、 基础方法,纯循环法 #include voidmain() { floats=0; inti; floatfz; floatfm; for(i=1;i<10;i++) { fz=(float)i; fm=(2*(float)i-1)*(2*(float)i+1); s=s+fz/fm; } printf("%f",s); } 扩展方法,函数生成单项后,循环累加法 #include floatfun(intn) { floatresult; floatfz; floatfm; fz=(float)n; fm=(2*(float)n-1)*(2*(float)n+1); result=fz/fm; returnresult; } voidmain() { floats=0; inti; for(i=1;i<10;i++) { s=s+fun(i); } printf("%f",s); } 4、 标准写法,注意//是注释线,为方便阅读添加 #include voidmain() { inta[50]; inti; intj,t,m; floatsum=0; floataverage; for(i=0;i<50;i++) { scanf("%d",&a[i]); } // (1)完毕,其中i用于循环 for(i=0;i<50-1;i++) { for(j=i+1;j<50;j++) { if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } } // (2)完毕,其中i、j、t用于排序使用 for(i=0;i<50;i++) { sum=sum+a[i]; } average=sum/50.0; printf("%.2f",average); } 5、 题目未特别提出数据类型,则一律用int即可 #include voidmain() { inta[10][10]; inti,j; intsum; for(i=0;i<10;i++) { for(j=0;j<10;j++) { scanf("%d",&a[i][j]); } } // (1)完毕 for(j=0;j<10;j++) { for(i=0;i<10;i++) { printf("%d",a[i][j]); } printf("\n"); } // (2)完毕 sum=0; for(i=0;i<10;i++) { for(j=0;j<10;j++) { if(i%2==0) { sum=sum+a[i][j]; } } } printf("%d",sum); //(3)完毕 } 6、 i等于m作为开始,依次i—递减下来,这样第一个能除尽的就是目标 #include intfact(intm) { inti=m-1; while(m>=0&&i>=1) { if(m%i==0) { break; } i--; } returni; } voidmain() { intinput; scanf("%d",&input); printf("%d",fact(input)); } 7、 函数中,i对应str1挨个查看,location对应str2新写入的位置 #include voidsfun(charstr1[],charstr2[]) { inti; intlocation=0; for(i=0;str1[i]! ='\0';i++) { if(str1[i]>='0'&&str1[i]<='9') { str2[location]=str1[i]; location++; } } str2[location]='\0'; } voidmain() { chars1[100]; chars2[100]; scanf("%s",s1); sfun(s1,s2); printf("%s",s2); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 详解
![提示](https://static.bdocx.com/images/bang_tan.gif)