参考试题
第一部分 基本知识部分(每题1分,共10分)
1. 语言的四大数据类型为是______________________
2. 在一个源程序文件中定义的全局变量的作用域为:_______________________
3. 表达式3*7%2+7%2*5的值为______________________
4. 如果利用数组名字作为函数调用的参数,则实际上传递给形参的是____________
5.一个C语言程序总是从__________开始执行。
6. int a[ ] [3]={1,2,3,4,5,6,7},其中数组第一维的元素个数为___________
7.判断两个字符串str1和str2是否相等的库函数为_____________
8.内存动态分配的库函数为___________________
9.取地址运算符为________, 取内容运算符为______________
10.C语言源文件的扩展名为_______, 可执行文件的扩展名__________.
第二部分 知识鉴别(每题2分,共30分)
1. 在C语言中,数字029是一个( )
A:八进制数 B:十六进制数
C:十进制数 D:非法数
2.已知:int I; float f;则正确的语句是( )
A:(int f)% I B: int (f) %I
C: int (f%I) D: (int)f% i
3.已知:char a;int b;float c;double d;执行语句c=a+b+c+d后,变量c的数据类型为( )
A: int B: char
C: float D:double
4.int n,I=1,j=2;执行语句n=I<j?I ++:j++;则i和j的值为( )
A:1,2 B:1,3
C:2,2 D :2,3
5.C语言对嵌套if语句的规定是:else总是和( )配对。
A:与之前最近的一个if B:第一个if
C:最后一个if D:之前最近的尚未配对的if
6.下面的语句for(x=0,y=0;(y!=123)&&(x<4 );x++)
A:是无限循环 B:循环次数不定
C:执行4次 D:执行3次
7.定义 int I=1;执行语句while (I++<5 );后,i的值是( )
A:3 B:4 C: 5 D:6
8.调用strlen(“abcd\0ef\0g”)的返回值为( )
A:4 B:5 C:8 D:9
9.在C语言中,二维数组元素在内存中的存放顺序是( )
A:按行存放 B:按列存放
C:用户自定义 D:编译器决定
10.有数组 int num[5]={10,20,30,40,50};则num[3]的值为
A:10 B:20
C:30 D:40
11.C语言中,有数组定义:char array[]=“china”;则数组array所占用的内存空间为几个字节
A:4 B:5
C:6 D:7
12.在C 语言中,引用数组元素时,其下标的数据类型允许是
A:只允许整型常量 B:整型变量
C:整型常量或者整型表达式 D:任何类型的表达式
13. 已知:int *p,a; 则语句“p=&a;”中的运算符“&”的含义是
A:位运算符 B:逻辑运算符
C: 取指针内容 D:取变量地址
14.已知:char s[10];*p=s,则以下语句中错误的语句是( )
A:p=s+5 B:s=p+s
C:s[2]=p[4] D:*p=s[0]
15.char b[5],*p=b;则正确的语句为( )
A:b=”abcd” B:*b=”abcd”
C:p=”abcd” D:*p=”abcd”
第三部分 程序分析能力(每题4分,共20分)
1. main( )
{
int a = –1, b = 4, k;
k=(+ + a<0 )&& !(b––< 0) ;
printf(“%d,%d,%d\n”,k,a,b) ;
}
则:以上程序的输出结果是_________________________
2.Main( )
{
int a=3, b=2, c=1;
int x=10, y=20;
if(a<b )
if(b!=0)
if(!x)
y=1;
else if(x)
y=0;
y=-1;
printf(“%d”,y);
}
则:上面C程序的输出结果是_____________
3. 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]);
}
则:以上C程序的输出结果是________________________
4.void fun( int a, int b, int c)
{ a=456;b=567;c=678; }
main( )
{
int x=10,y=20,z=30;
fun(x,y,z);
printf(“%d,%d,%d”,z,y,x);
} 则:程序的运行结果是:___________________________
5. char *p=”happy new year”;
char *q=p;
int k;
for (k=1;k<8 ;k++)
{ putchar(*q);
q++;
}
则:以上C程序的输出结果是__________________________
第四部分:程序分析能力(每题5分,共20分)
1.以下程序实现从1到100的类加和,请把程序填充完整。
main( )
{
int i=1,sum=0;
for( ; ;)
{ sum+=i;
_____________
if (i>100)
_____________
}
printf(“%d”,sum);
}
2.下面的函数是一个求阶乘的递归函数
facto ( int n )
{if (n= =1)_______________
else return _______________ }
3.下面的部分程序用于输出3到100之间的所有素数
for ( i=3; i< ="100;" i++)
{
for (j=2; j< ="i-1;" j++)
if ( ______________ ) break;
if ( _______________ ) printf(“%d”, i);
}
4.读入10个整数,统计非负数的个数,并计算非负数的和。
main( )
{
int i, a[10], s=0 , count=0;
for (i=0; i<10 ;i++)
scanf(“%d”, _______);
for(i=0;i<10 ;i++)
{ if (a[i]<0 ) ;
s += a[i];
_____________
}
printf(“%d,%d”,s,count);
}
第五部分:综合技能训练(每题10分,共20分)
1. 打印出所有的“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153=13+53+33,所以153是一个水仙花数。
2. 函数编写部分要加强训练,如求累加和问题,阶乘问题等。