20学年第二学期c语言期末考题及解答_第1页
20学年第二学期c语言期末考题及解答_第2页
20学年第二学期c语言期末考题及解答_第3页
20学年第二学期c语言期末考题及解答_第4页
20学年第二学期c语言期末考题及解答_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、XXX大学xxxx 学年 第二学期期末C 程 序 设考试A卷班 级学_姓 名成_计号 绩 班号学号姓名 成绩C程序设计期末考试卷注意事项:1、此卷为闭卷考试,120分钟完成;2题目:、笔试成绩为卷面成绩x 0.6。一、选择题(30分,每题3 分)1、下列说法不正确的是 A。A)主函数main中定义的变量在整个文件或程序中有效B)不同函数中,可以使用相同名字的变量C)形式参数是局部变量D)在一个函数内部,可以在复合语句中定义变量,这些变量只在本复 合语句中有效2、程序段:int k=i;for( k ; i ; k+ ) if (k) break;for语句的循环次数是B。A)0B)iC)2D)

2、死循环3、以下有关switch语句的正确说法是B。A)break语句是语句中必须的一部分B )在switch语句中可以根据需要使用或不使用break语句C)break语句在switch语句中不可以使用D )在switch语句中的每一个case都要用break语句4、在下面的语句中:只有一个在功能上与其他三个语句不等价(其 中si和s2表示某个C语句),这个不等价的语句是DA) if (a) si; else s2;C) if (a!=0) si; else s2;B) if (!a) s2; else si;D) if (a=0) si; else s2;5、以下叙述不正确的是D。A)一个变量

3、的作用域的开始位置完全取决于变量定义语句的位置B)全局变量可以在函数以外任何位置定义C)局部变量的生存期只限于本次函数调用,因此不可能将局部变量 的运算结果保存至下一次调用D)一个变量说明为static存储类是为了限制其它编译单位引用6、若用数组名作为函数调用时的实参,则实际上传递给形参的是A)数组的首地址C)数组中全部元素的值B)数组的第一个元素值D)数组元素的个数7、声明为int a34;下列表达式与a21等价的有CA)*(a1+2) ; B)a9 ; C)*(a2+1);D)*(*(a+2)+1;8下列的定义中,正确使用字符串初始化的是CA) char str7 = "FORT

4、RAN"B) char str = F,O,R,T,R,A,N,0;C) char *str = "FORTRAN"D) char str = 'F','O','R',T,'R','A','N'9、设有 int x,y; if (x=y) printf(” x is equal to y.");以下语句判断x和y是否相等,正确的说法是该语句BA)语法错B )不能判断x和y是否相等C)编译出错D)能判断x和y是否相等10、fread(buf,32,2,fp)的功

5、能D。A)从fp文件流中读出整数32,存放在buf中B)从fp文件流中读出32个字节的字符,存放在buf中C)从fp文件流中读出整数32和2,存放在buf中D)从fp文件流中读出2块32个字节的字符,存放在buf中二、填空题(20分,每题4分)1、下面这个程序功能:读入 5个整数,当程序读入的数据为正整数 时,则显示该数,否则,不显示。读入 5个数据后,程序结束运行。#in elude <stdio.h> void mai n()int i, n;for (i=1; i<=5; i+)prin tf("Please en ter n:”); scanf("

6、%d", &n);if (n <= 0) con ti nueprin tf("n = %dn", n);prin tf("Program is over!n");2、以下程序对输入的1000以下的正整数(不含1000),求出其相应 的个位数、十位数和百位数。#in clude<stdio.h>void mai n()int x,a,b,c;do printf("输入一个1000以下的整数:”); sca nf("%d", &x);prin tf("n");wh

7、ile( x<0 | x>=1000);a=x/100;b= (x-a*100)/10;c=x%10;printf("%d的个位数是%d,十位数是%d,百位数是%dn",x,c,b,a); 3、用起泡法”对输入的小于10个字符排序后按从小到大的次序输出 #i nclude <stdio.h>#i nclude <stri ng.h>#defi ne N 11void sort(char strN,int n);void mai n()char strN;int i;printf(输入任意长度小于10的字符串:” sca nf("

8、%s",str);prin tf("n")sort( str , strle n(str) ); for (i=0;stri!='0' i+)prin tf("%c",stri);prin tf("n"); void sort(char *str,int n)int i,j; char t;for (j=1; j<n; j+)for (i=0; i<n-j ; i+) if (stri>stri+1) t=stri; stri=stri+1 stri+1=t4、以下程序是一个函数,功能是求二

9、阶矩阵( m行n列矩阵)的所 有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)例如,矩阵为:3 0 0 32 5 7 310 4 2则所有靠外侧的各元素值之和为 3+0+0+3+2+3+1+0+4+2=18add(i nt m,i nt n ,i nt arr) int i,j,sum=0;*(arr+i* n)+j)for (i=0; i<m; i=i+m-1) for (j=0; j <n; j+) sum=sum+for (j=0; j< n; j=j+n-1) for (i=1;i<m-1; i+)sum=sum+arri* n+j;return

10、(sum);12分 试统5、假设有40个学生被邀请来给自助餐厅的食品和服务质量打分, 数划分为110这10个等级(1表示最低分,10表示最高分), 计调查结果,并用*打印出如下形式的分数统计直方图。GradeHistogramd*10#i nclude <stdio.h>#defi ne N 40void mai n()int i, j, grade;int scoreN, cou nt11 = 0;prin tf("Please en ter the resp onse score:' n");for (i=0; i<N; i+)scanf( “

11、 d”,&scorei);for (i=0; i<N; i+)coun tscorei+;prin tf("GradetCou nt'tHistogram'n");for (grade=1; grade<=10 ; grade+) prin tf("%5dt", grade);for (j=0;jvco un tgrade; j+)prin tf("%c",'*');prin tf("n");三、编程题 (50 分) 编程题缩进、空格、空行、标识符命名等编程规范占

12、 2 分。 1、下面程序的功能是求解爱因斯坦数学题。爱因斯坦曾出过这样一 道数学题:有一条长阶梯,若每步跨 2阶,最后剩下 1 阶;若每步跨 3阶,最后剩下 2阶;若每步跨 5阶,最后剩下 4阶;若每步跨 6 阶, 最后剩下 5 阶;只有每步跨 7 阶,最后才正好 1 阶不剩。编程打印这 条阶梯共有多少阶。(10 分)#include <stdio.h>void main()int x,find;x=0;do +x;find = x%2=1&&x%3=2&&x%5=4&&x%6=5&&x%7=0;while (!fin

13、d);printf("x=%dn",x);2、编写程序输出 3 到 10000 内的可逆素数。可逆素数是指:一个素 数将其各位数字的顺序倒过来构成的反序数也是素数。如157和 751均为素数,它们是可逆素数。 (20 分) 要求:使用子函数实现,int prime(int a)函数用于判定素数,1为素数, 0为非素数;intinvert(int a)函数用于倒序一个数,如a=123,则invert 函数返回值为 321。#include <stdio.h>#include <stdlib.h>#include <math.h>int in

14、vert(int a)int s = 0;while (a > 0)s = 10*s+ a % 10 ;a /= 10;return s;int prime(int a)int i;for (i = 2; i <= (int)sqrt(a); i+)if ( a % i=0) return 0;return 1;int main()int i;for (i = 3; i < 10000; i+)if (prime(i)if (prime( invert(i) ) printf("%5d", i);printf("n");return 0;3、给定程序中,函数 fun 的功能是 : 将 s 所指字符串中的所有数字字 符移到所有非数字字符之后, 并保持数字字符串和非数字字符串原有 的先后次序。例如:形参s所指的字符串为:def35adh3kjsdf7执行结 果为: defadhkjsdf3537。(20 分)#include <stdio.h>void fun(char *s)int i, j=0, k=0;char t180, t280;for (i=0; si!= 0'i;+)if (si>= '&0&' si<= '9&

温馨提示

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

评论

0/150

提交评论