当前位置:文档之家› C语言模拟题

C语言模拟题

上海师范大学标准试卷~ 学年第学期考试日期年月日(考试时间:90分钟)科目:C 语言程序设计(模拟卷)专业本科年级班姓名学号我承诺,遵守《上海师范大学考场规则》,诚信考试。

签名:________________一、选择和填空题(本大题满分20分,每题2分。

)1、把a1、a2定义成整型变量,并赋初值1的定义语句是int a1=1,a2=1; 。

2、有以下程序片段,请问执行后的输出结果是 1 。

char a=8,c;c=a>=3;printf("%d\n",c);3、有以下程序片段,若程序运行时从键盘输入48(字符0的ASCII码),则输出结果为09 。

char c1,c2; scanf("%d",&c1); c2=c1+9; printf("%c%c\n",c1,c2);4、有以下程序片段,若程序运行时从键盘输入12,则输出结果为1217 。

scanf("%d",&x);if(x>15) printf("%d",x-5);if(x>10) printf("%d",x);if(x>5) printf("%d\n",x+5);5、有以下程序片段,请问执行后的输出结果是0 。

char str[]="ABCD"; printf("%d\n",str[4]);6、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句是 C 。

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、下面程序段中循环体的执行次数是 B 。

int j=0; do{j=j+1; }while(j>2);A) 0次B) 1次C) 2次D) 无限次8、以下程序的输出结果是 B 。

int fun(int a, int b, int c ) { return c=a*b;}main() { int c=3; fun(2,3,c); printf("%d\n",c); }A) 2 B) 3 C) 6 D) 无定值9、假设二维数组a有m列,则在元素a[i][j]前的元素个数为 B 。

A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+110、判断整型变量a的值是否处于区间[5,10]的表达式应写作5<=a&&a<=10 。

1、下面程序实现摄氏温度C表示华氏温度F,其中有3个错误,请指出并改正。

#include <stdio.h>int main ( ){float f,c;scanf("%d",f);c=(5/9)*(f-32);printf("f=%f\nc=%f\n",f,c);return 0;}改正:scanf("%f",&f);c=(5.0/9)*(f-32);2、下面程序实现1+2+3+…+100, 其中有3个错误,请指出并改正。

#include <stdio.h>int main(){ int sum;while(i<=100);{ sum=sum+i;i++;}printf("sum=%d\n",sum);return 0;}改正:int sum=0,i=1;while(i<=100)后面的分号删除3、程序填空:输入一字符串,求其中数字的个数。

#include <stdio.h>int main(){ char s[80];int i, num=0;gets(s);for (i=0; 【1】;i++){if (【2】) num++;}printf("num=%d\n",num);}【1】s[i]!='\0'【2】(s[i]>='0'&&s[i]<='9')4、以下程序用来检查二维数组是否对称(即:对所有i,j都有a[i][j]=a[j][i])。

#include <stdio.h>int main(){ 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】;}if(【4】) printf("不对称\n");else printf("对称\n");return 0;}【1】a[i][j]!=a[j][i]【2】 1【3】break;【4】found二、综合题(本大题满分60分,1,2题每题6分,其余每题8分。

)5、程序填空:输入10个数,要求输出其中值最大的元素和该数是第几个数。

#include <stdio.h>int main(){ int 【1】;int a[10],m,n=0,i;printf("10 integer numbers:\n");for(i=0;i<10;i++) scanf("%d",&a[i]);m=a[0];for(i=1;i<10;i++){if (max(m,a[i])>m){ 【2】; n=i; }}printf("largest number is %d\n",m);printf("%dth number.\n",n+1);}int max(int x,int y){ return(x>y?x:y); }【1】max(int x,int y) ;【2】m=max(m,a[i])6、读程序,写出输出结果。

#include <stdio.h>main(){ char a[30],b[30];scanf("%s",a);gets(b);printf("a=%s\n",a);printf("b=%s\n",b);}程序运行时若输入:"How are you", 则输出结果是:a=How↓b= are you↓7、读程序,写出输出结果。

#include <stdio.h>int s2=1;int fun1();int main(){int i,s1;for(i=1;i<=3;i++) s1=fun1(); printf("s1=%d\ns2=%d\n",s1,s2); }int fun1(){ static int x=1;int y=1;x=x*2;s2=y*2;return x;}运行结果:s1=8↓s2=2↓8、读程序,写出输出结果。

#include <stdio.h>int main(){ char a[]="abcdcba";int i, j=0;for(i=1; i<7; i++)if(a[j]<a[i]) j=i;a[j+1]=a[7];puts(a);return 0;}运行结果:abcd三、编程序(本大题满分20分,每题10分。

)1、编写程序,输出所有的水仙花数。

(水仙花数是指一个3位数,其各位数的立方和等于该数本身。

例如153是一个水仙花数,333=++)153153#include <stdio.h>int main(void){ int x,y,z;for(x=1;x<=9;x++)for(y=0;y<=9;y++)for(z=0;z<=9;z++)if(100*x+10*y+z==x*x*x+y*y*y+z*z*z)printf("%d%d%d\n",x,y,z);return 0;}2、编写程序,将一个二维数组(三行四列)的行和列的元素互换,存到另一个二维数组中(四行三列)。

数据由键盘输入(整数),结果输出在屏幕上。

#include <stdio.h>int main(){int a[3][4];int b[4][3], i, j;for (i=0; i<3; i++)for (j=0; j<4; j++)scanf("%d", &a[i][j]);for (i=0; i<3; i++)for (j=0; j<4; j++)b[j][i]=a[i][j];for (i=0; i<4; i++){ for (j=0; j<3; j++)printf("%4d", b[i][j]);printf("\n");}return 0;}。

相关主题