C语言模拟题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上海师范大学标准试卷

~ 学年第学期考试日期年月日

(考试时间: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+1

10、判断整型变量a的值是否处于区间[5,10]的表达式应写作

5<=a&&a<=10 。

1、下面程序实现摄氏温度C表示华氏温

度F,其中有3个错误,请指出并改正。

#include

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

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

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

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

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

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

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

int main()

{ char a[]="abcdcba";

int i, j=0;

for(i=1; i<7; i++)

if(a[j]

a[j+1]=a[7];

puts(a);

return 0;

}

运行结果:abcd

相关文档
最新文档