同济大学2019-2020学年第一学期C 语言程序设计试题及答案(三)
学号: 学习中心名称: 专业: 层次: 姓名: 
题号
总分
得分
注意:所有答案都要写在答题卡上
一、单项选择题(20 分,每题 2 分)
1.执行下列程序段后,正确的结果是Bint k, a[3][3] = {1,2,3,4,5,6,7,8,9};
for(k=0; k<3; k++) printf(“%2d”, a[k][k]);
A) 1 2 3 B) 1 5 9 C) 1 4 7 D) 3 6 9
2.a int 类型变量,则计算表达式 a=25/3%3 的值是:(BA)3 B)2 C)1 D)0
3.下面正确的字符常量是:(CA)cB)\\’’ C)WD)‘’
4.C 语言中,运算对象必须是整型的运算符是:(BA)% B)/ C)* D)+
5.数字字符 0 ASCII 值为 48,若有以下程序main()
char a='1', b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是。(B
A3,2    B50,2    C2,2    D2,50
6.以下语句或语句组中,能正确进行字符串值的是。(DAchar *sp;*sp="right!";    Bchar s[10];s="right!"; Cchar s[10];*s="right!";    Dchar *sp="right!";
7for(i=0;i<10;i++)
if(i=5break;
则循环结束后 i 的值为(BA)0 B)1 C)5 D)10
8.执行下列程序段后,正确的结果是(Cchar x[8] = {8,7,6,5,0,0}, *s;
s = x+1;

printf(“%d\n”, s[2]); A) n B) 0 C) 5 D) 6
9C 语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:
A
A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式10.设有数组定义:char str[]=China”;则下面的输出为(C
printf(%d,strlen(str)); A)4 B)5 C)6 D)7
二、填空题(30 分,每空 2 分)
1.下列程序段的输出结果是 3 int i=19, j;
j=i%4;  printf(“% d”, j);
2.已知 fun1 函数的功能是将三个数按由大到小的顺序调整后依次放入 a,b,c
三个变量中,其中 a 存放最大的数,利用 fun2 函数填空完成此功能。
void fun2(int *x,int *y)
{
int t;
t=*x; *x=*y; *y=t;
}
void fun1()
{
int a=20,  b=30,  c=25; if(c>b) fun2(    &c,&b    ); if(a<c) fun2(  &a,&c    ); if(a<b) fun2(    &a,&b    );
}
3.已知字符 A ASCII 代码值为 65,以下程序运行时若从键盘输入:B33<>,则输出结果是 1 B
#include <stdio.h> main()
char a,b; a=getchar();
scanf("%d",&b);
a=a-'A'+'0';
b=b*2; printf("%c %c\n",a,b);
}
4.以下程序运行后的输出结果是 4 3 5

main()
int a=3,b=4,c=5,t=99; if(b<a && a<c) { t=a;a=c;c=t;} if(a<c && b<c) {t=b;b=a;a=t;} printf("%d %d %d\n",a,b,c);
}
5.若已知 a=10,b=20,则表达式!a<b 的值是    _0
6. s unsigned int 型变量,则下面表式的值是    1   
s%2+(s+1)%2
7.下面程序将字符数组 a 复制到字符数组 b 中。
main()
{
char a[]="I am a boy.",b[20]; int i;
for(i=    0    ;a[i]!='\0';i++)
{
    b[i]=a[i]    ;
}
    b[i]=’\0’    ;
}
8.若有 int a[3][2] = {{1},{3,2},{4,5}};,则 a[1][1]的值是
9.有以下程序,执行后输出结果是 0 main( )
int t=1,i=5; for(;i>=0;i--) t*=i;
printf("%d\n",t);
10.在循环语句中,break 语句的作用是 是用来跳出当前一层循环的continue语句的作用是 终止本次循环
三、写出程序的运行结果(30 分,每题 10 分)
1.写出程序运行后的输出结果main()
int a=1,b; 
for(b=1;b<=10;b++) 
{
if(a>=8) break; 
if(a%2==1)

{
a+=5; continue;
a-=3; 
printf("%d\n",b); 
}
输出结果:b=4
2.写出程序运行后的输出结果#include <string.h>
char *ss(char *s)
return s+strlen(s)/2;
}
main( )
{ char *p,*str="abcdefgh"; p=ss(str);    printf("%s\n",p);
}
输出结果:efgh
3.写出程序运行后的输出结果 int f1(int x,int y){return x>y?x:y;} 
int f2(int x,int y){return x>y?y:x;} 
main() 
int a=4,b=3,c=5,d=2,e,f,g; 
e=f2(f1(a,b),f1(c,d)); 
f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf("%d,%d,%d\n",e,f,g); 
}
4,3,7
四、编程(完形填空)(20 分,每题 10 分)
以下程序中函数 huiwen 的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出, 所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。
#include <stdio.h> #include  <string.h> char *huiwen(char *str)
char *p1,*p2; int i,t=0; p1=str;
p2=    str+strlen(str)-1    ; str+strlen(str) for(i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--)
{
t=1;


break;
}
if(字符串函数编程题_t==0 !t _ ) t==0 return("yes!"); 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。