内容正文:
《C语言》试题
一、 选择题
1.已知ch是字符型变量,下面不正确的赋值语句是( )。
A.ch=„\0‟
B.ch=„a+b‟
C.ch=„7‟+„9‟
D.ch=7+9
2.题目:下列哪个选项中的标识符是不合法的?()
A. myVariable
B. 2ndPlace
C. _underscore
D. for
3.已知:int i=1,j;执行语句j=-i++;后,j的值是( )
A.1 B.2 C.-1 D.-2
4.若a=1,b=2,c=3,d=4;则条件表达式 a>b?a:c<d?c:d结果为( )
A.4 B.3 C.2 D.1
6.设x=2.9,a=8,y=3.7,算术表达式x+a%3*(int)(x+y)%5/2的值是 ( )
A.3.9 B.4 C.4.2 D.3.75
7.分析以下程序:
void main( )
{ int x=5,a=0,b=0;
if(x=a+b)
printf("** **
");
else
printf("####
");
}
以上程序( )。
A.有语法错,不能通过编译
B.通过编译,但不能连接
C.输出####
D.输出** **
8.设有程序段
int a=8;
while(a=0)
a++;
则下面描述正确的是( )。
A.while循环执行10次
B.循环是无限循环
C.循环体一次也不执行
D.循环体只执行一次
9.以下程序的输出结果是( )
main()
{ int i,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf("%d,",x[i][2-i]);
}
A.1,5,9, B.1,4,7, C.3,5,7, D.3,6,9,
10.已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是( )
A.数组a和b的长度相同
B.a数组长度小于b数组长度
C.a数组长度大于b数组长度
D.上述说法都不对
二、请写出以下程序的结果
1.#include <stdio.h>
int main()
{
int i = 10;
switch(i)
{
case 9:
i += 1;
case 10:
i += 1;
case 11:
i += 1;
case 12:
i += 1;
}
printf("i=%d
", i);
return 0;
}
2.#include<stdio.h>
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("b=%d
",b);
}
3.#include<stdio.h>
int f(int a,int b)
{ int c;
c=a;
if(a>b)c=1;
else if(a==b)c=0;
else c= -1;
return(c);
}
main()
{ int i=2,p;
p=f(i,i+1);
printf("%d",p);
}
4.#include <stdio.h>
int f(int n)
{
if(n == 1)
return 1;
else
return f(n - 1) + 1;
}
int main()
{
int j = 0;
j = f(4);
printf("j=%d
", j);
return 0;
}
}
5.#include <stdio.h>
#define S(x) ((x) * (x))
int main()
{
int a, k = 3;
a = S(k + 1);