C语言模拟题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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++)