|
中石油华东2017年春季学期《C语言》在线考试(适用于2017年6月份考试)标准答案
一、单选题:【10道,总分:20分】
1.判断字符串s1是否大于字符串s2,应该使用 (满分:2)
A. if(s1>s2)
B. if(strcmp(s1,s2))
C. if(strcmp(s2,s1)>0)
D. if(strcmp(s1,s2)>0)
2.若i为整型变量,则以下循环的次数是for(i=2;i==0;)printf(“%d”,i--); (满分:2)
A. 无限次
B. 0次
C. 1次
D. 2次
3.设有如下程序段:int x=2, y=3;printf("%d\n",(x,y));则以下叙述中正确的是 (满分:2)
A. 输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B. 运行时产生出错信息
C. 输出值为2
D. 输出值为3
4.语句: printf("%d",(a=2)&&(b=-2)); 的输出结果是 (满分:2)
A. 无输出
B. 结果不确定
C. 1
D. 2
5.设有int x=11;则表达式(x *1/3)的值是 (满分:2)
A. 3
B. 4
C. 11
D. 12
6.设有定义语句:char str[][20]={"Hello","Beijing"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是 (满分:2)
A. 0
B. 5
C. 7
D. 20
7.设有语句:float x=1,y;? y=x 3/2; 则y的值是 (满分:2)
A. 1
B. 2
C. 2.0
D. 2.5
8.结构化程序的3种基本控制结构是 (满分:2)
A. if-else结构、while结构、for结构
B. 顺序结构、分支机构、循环结构
C. while结构、do-while结构、for结构
D. 以上三种都不对
9.设有定义 int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是 (满分:2)
A. a&&b
B. a<=b
C. a( )b c&&b-c
D. !((a<b)&&!c( )1)
10.以下选项中,与k= n完全等价的表达式是 (满分:2)
A. k=n,n=n 1
B. n=n 1,k=n
C. k= n
D. k =n 1
二、简答题:【3道,总分:30分】
1. 编程题:编写函数change使输入的字符串按反序存放,在主函数中输入和输出字符串。例如输入是:12345abcde,则输出为:edcba54321
满分:10 分
2. 编程题:编写一个函数,将一个字符串(最多80个字符)中的大写字母变为小写字母,小写字母变为大写字母。要求字符串的输入与输出在主函数中完成。
满分:10 分
3. 设有分段函数:
x (x<1)
Y= 2x-1 (1≤x<10) 写一程序,输入 x,输出 y 的值。
3x-11 (x≥10)
三、其他题(共 10 道试题,共 50 分。)V
1. 读程序,写出程序执行结果
#include <stdio.h>
void main()
{ int x=1,a=0,b=0;
switch(x)
{ case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
满分:5 分
2. 读程序,写出程序执行结果
#include <stdio.h>
void main()
{ int s,i;
for(s=0,i=1;i<5;i++,s+=i) ;
printf(“%d\n”,s);
}
满分:5 分
3. 读程序,写出程序执行结果
#include <stdio.h>
int f( )
{ int s=1;
static int i=0;
s+=i; i++;
return s ;
}
void main()
{ int i,a=0;
for(i=0;i<3;i++) a+=f( );
printf("%d\n",a);
}
满分:5 分
4. 读程序,写出程序执行结果
#include <stdio.h>
void main()
{ int i,n[]={1,2,3,4,5};
for(i=0;i<2;i++)
{ n[i]=n[4-i]+1;
printf("%d ",n[i]);
}
for(i=0;i<5;i++)
printf("%d ",n[i]);
}
满分:5 分
5.
读程序,写出程序执行结果
#include <stdio.h>
void main()
{ int a=10,b=0;
if(a=12)
{a++; b++; }
else
{ a=a+3 ; b=b+3;}
printf(“%d,%d\n”,a,b);
}
满分:5 分
6. 读程序,写出程序执行结果
#include <stdio.h>
void main()
{ int i=0,a=0;
while( i<20 )
{ for(;;)
if((i%10)==0) break;
else i--;
i+=11;
a+=i;
}
printf("%d\n",a);
}
满分:5 分
7.
读程序,写出程序执行结果
#include <stdio.h>
int ws(int x)
{ if(x/100>0)
return(3);
else if(x/10>0 )
return(2);
else
return(1);
}
void main()
{ int a=123;
printf("%d是%d位数\n",a,ws(a));
}
满分:5 分
8.
读程序,写出程序执行结果
#include <stdio.h>
void main()
{ int k=4,n=0;
for( ; n<k ; )
{ n++;
if(n%3!=0) continue;
k- -;
}
printf("%d,%d\n",k,n);
}
满分:5 分
9.
读程序,写出程序执行结果
#include <stdio.h>
void main()
{ int n=2;
printf(“%d,%d,%d\n”, ++n , n+=2 , --n) ;
}
满分:5 分
10.
读程序,写出程序执行结果
#include <stdio.h>
int fun(char *s1,char *s2)
{ int i=0;
while(s1[i]==s2[i] && s2[i]!='\0') i++;
return (s1[i]=='\0' && s2[i]=='\0');
}
void main()
{ char p[10]= "abcdef", q[10]= "ABCDEF"
printf("%d\n",fun(p,q));
}
|
|