芷江民族职业中专计算机专业C语言4月份考试问卷一、选择题(每小题2分,共10小题,合计20分)
1、设有如下的变量定义:
int m=8,a,b;
double x=1.42,y=5.2;
则符合C语言语法的表达式是()
A、m=m-=(b=4)*(a=3) B、x%-3 C、a=a*3=2 D、y=float(m)
2、假定一个字符串的长度为n,则定义存储该字符串的字符数组的长度至少为()。
A、n-1 B、n C、n=1 D、n+2
3、下列符号不能作为变量名的是()
A、list_p_9 B、PA123 C、ready D、for
4、若有数组定义int x[2][3]={1,2,3,4,5,6};则数组元素a[1][1]的值为()
A、1 B、4 C、不确定 D、5
5、若有以下说明语句“char s='\\\\\\072';”则下面()是正确的。
A、s的值包括2个字符 B、说明语句不合法
C、s的值包括6个字符 D、s的值包括4个字符
6、若有以下说明和语句,则输出结果是()
char sp[]="\\\v\\\\\\0will\\n";
printf("%d",strlen(sp));
A、14 B、3 C、9 D、字符串中有非法字符
7、若有定义和语句:
char s[10];s="abcd";printf("%d\\n",s);
则结果是:()
A、abcd B、a C、adcb D、不能通过
8、以下程序的输出结果是()
#includemain()
{char str[12]={'s','t','r','i','\\0'};
printf("%d",strlen(str));}
A、5 B、6 C、24 D、12
9、下列C语言常量中,错误的是()
A、0xFF B、1.2e0.5 C、2L D、’\\172’
10、若有以下说明语句,则输出结果是()
char str[]="c:\\\\abc.dat ";
printf("%s",str);
A、字符串中有非法字符 B、c:\\\\abc.dat
C、c:\\abc.dat D、"c:\\\\abc.dat "
二、看程序写结果题(每小题5分,共6小题,合计30分)
1、main()
{ int n=4;
while(n--)
{ printf("%d",n);
}}
运行结果:
2、main()
{ int a,b,c;
a=2;b=3;c=1;
if(a>b)
if(a>c)printf("%d\\n",a);
else printf("%d\\n",b);
printf("end\\n");}
运行结果:
3、func(int a)
{
int b=0;
static int c=3;
b++;c++;
return(a+b+c);
}
main()
{
int a=2,i;
for(i=0;i<3;i++)
printf("%d",func(a));
}
运行结果:
4、#include int x,y;
main()
{
int n;
x=1;y=2;n=s();
printf("x=%d,y=%d,n=%d",x,y,n);
}
int s()
{
int z;
x=3;y=4;z=x+y;
return(z);
}
运行结果:
5、space(int m)
{
while(m--)printf("%c,32");
}
main()
{
int i,j;
printf("\\n");
for(i=5;i>=1;i--)
{space(i);printf("*");printf("\\n");}
}
运行结果:
6、SB(char ch)
{
switch(ch)
{
case 'A':
case 'a':printf("well!");break;
case 'B':
case 'b':printf("good!");break;
case 'C':
case 'c':printf("pass!");break;
default:printf("bad!");break;
}
}
main()
{
char a1='b',a2='C',a3='f';
SB(a1);SB(a2);SB(a3);
}
运行结果:
三、程序填空题(每空5分,共5空,合计25分)
1、函数SA的功能是比较两个整数a和b的大小,若a>b则返回1,若a=b则返回0,若a则返回-1。(请按要求完成下列程序)
int SA(int a,int b)
{
if(a>b) ;
else if(a==b)return 0;
else ;
}
2、以下程序的功能是将输入的10个数按从小到大的顺序排列。(请按要求完成下列程序)
main()
{
int a[10],i,j,t;
for(i=0;i<10;i++)
;
for(i=0;i<9;i++)
for( ;j<10;j++)
if( )
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<10;i++)
printf("%d\\n",a[i]);
}
四、程序改错题(每处错误5分,共5处错误,合计25分)
1、以下程序的功能是将s1的内容连接到s2中,并将连接后的结果放在s2中,此程序有两处错误,请改正。
#includemain()
{
char s1[10],s2[100];
gets(s1);
gets(s2);
strcat(s1,s2);
}
错误一: 改正:
错误二: 改正:
2、以下程序的功能是用递归调用求1到n的和。此程序有三处错误,请改正。
f(n)
{
int s;
if(n=1)s=1;
else s=s+f(n-1);
return s;
}
main()
{
int n;
scanf("%d",&n);
printf("1到%d的和为%d",n,f(n));
}
错误一: 改正:
错误二: 改正:
错误三: 改正: