上海师范大学C语言期末考试标准试卷
-CAL-FENGHAI.-(YICAI)-Company One1
上海师范大学标准试卷
~ 学年 第 学期 考试日期 年 月 日
(考试时间: 90分钟)
科目:C 语言程序设计(模拟卷)
专业 本科 年级 班 姓名 学号 题号 得分 一 二 三 总分 我承诺,遵守《上海师范大学考场规则》,诚信考试。 签名:
________________
得得分 一、选择和填空题(本大题满分20分,每题2分。)
1、 把a1、a2定义成整型变量,并赋初值1的定义语句是 。 2、 有以下程序片段,请问执行后的输出结果是 。
char a=8,c; c=a>=3; printf(\
3、 有以下程序片段,若程序运行时从键盘输入48(字符0的ASCII码),则输
出结果为 。
char c1,c2; scanf(\ 4、 有以下程序片段,若程序运行时从键盘输入12,则输出结果为 。
scanf(\ if(x>15) printf(\
if(x>10) printf(\ if(x>5) printf(\ 5、 有以下程序片段,请问执行后的输出结果是 。
char str[]=\
6、 若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句
是 。
A) a=a+b, b=a-b, a=a-b; B) t=a, a=b, b=t; C) a=t; t=b; b=a; D) t=b; b=a; a=t; 7、 下面程序段中循环体的执行次数是 。 int j=0; do{j=j+1; }while(j>2); A) 0次 B) 1次 C) 2次 8、 以下程序的输出结果是 。
int fun(int a, int b, int c ) { return c=a*b;}
main() { int c=3; fun(2,3,c); printf(\ A) 2 B) 3 C) 6
无定值
D) 无限次
D)
9、 假设二维数组a有m列,则在元素a[i][j]前的元素个数为 。
2
A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+1
10、 判断整型变量a的值是否处于区间[5,10]的表达式应写作 。 二、综合题(本大题满分60分,1,2题每题6分,其余每题8分。) 得得分 1、 下面程序实现摄氏温度C表示华氏温
度F,其中有3个错误,请指出并改正。
#include
float f,c;
scanf(\ c=(5/9)*(f-32);
printf(\ return 0; }
改正:
2、 下面程序实现1+2+3+…+100, 其中有3
个错误,请指出并改正。 #include
while(i<=100); { sum=sum+i; i++; }
printf(\ return 0; }
改正:
3、 程序填空:输入一字符串,求
其中数字的个数。 #include
gets(s); for (i=0; 【1】;i++) { if (【2】) num++; }
printf(\ }
【1】 【2】
4、 以下程序用来检查二维数组是
否对称(即:对所有i,j都有a[i][j]=a[j][i])。 #include
{ int a[4][4]={1,2,3,4, 2,2,5,6, 3,5,3,7,
8,6,7,4};
int i, j, found=0; for(j=0; j<4; j++) { for(i=0; i<4; i++) { if(【1】 )
{found= 【2】; break; } }
if (found) 【3】;
3 }
if(【4】) printf(\不对称\\n\ else printf(\对称\\n\ return 0; }
【1】 【2】 【3】 【4】
5、 程序填空:输入10个数,要求输出
其中值最大的元素和该数是第几个数。
#include
int a[10],m,n=0,i;
printf(\ for(i=0;i<10;i++) scanf(\ m=a[0];
for(i=1;i<10;i++) { if (max(m,a[i])>m) { 【2】; n=i; } }
printf(\ printf(\ }
int max(int x,int y) { return(x>y?x:y); }
【1】 【2】
6、 读程序,写出输出结果。
#include
{ char a[30],b[30]; scanf(\ gets(b);
printf(\ printf(\
}
程序运行时若输入:\则输出结果是:
7、 读程序,写出输出结果。 #include
int i,s1;
for(i=1;i<=3;i++) s1=fun1(); printf(\ }
int fun1()
{ static int x=1; int y=1; x=x*2; s2=y*2; return x; }
运行结果:
8、 读程序,写出输出结果。 #include
{ char a[]=\ int i, j=0;
for(i=1; i<7; i++) if(a[j] 4 puts(a); return 0; } 运行结果: 得得分 三、编程序(本大题满分20分,每题10分。) 1、 编写程序,输出所有的水仙花数。(水仙花数是指一个3位数,其各位数的立方和等于该数本身。例如153是一个水仙花数,153?13?53?33) 2、 编写程序,将一个二维数组(三行四列)的行和列的元素互换,存到另一个二维数组中(四行三列)。数据由键盘输入(整数),结果输出在屏幕上。 5