2.下面的变量说明中_____________是正确的。
A.Char:a,b,c; B.Char a;b;c;
C.Char a,b,c; D.Char a,b,c
3.main( )
{ int n;
( n=6*4,n+6),n*2;
printf(“n=%d\n”,n);
} 此程序的输出结果是______________.
A.30 B. 24 C. 60 D. 48
4.若有如下定义,则__________和_________是对数组元素的正确的引用。。
int a[10] ,*p ;
p=a ;
A. *&a[10] B. a[11] C. *(p+2) D. *p
5.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________
A. 0 B. 4 C. - 4 D. 2
6.表达式y=(13>12?15:6>7?8:9)的值为____________ .
A 9 B 8 C 15 D. 1
7.若x=5,y=3 则y*=x+5; y的值为_______________.
A. 10 B. 20 C. 15 D. 30
8.C语言的输入与输出操作是由____________完成的。
A.输入语句 B.输出语句
C.输入与输出函数 D.输入与输出语句
9.语句 for(k=0;k<5;++k)
{ if(k= = 3) continue;
printf(“%d”,k);
}的输出结果为___________.
A.012 B. 0124 C. 01234 D. 没有输出结果
10.从循环体内某一层跳出,继续执行循环外的语句是:___________.
A. break语句 B.return语句
C.continue语句 D.空语句。
[NextPage]
11.Break语句的正确的用法是____________.
A.无论在任何情况下,都中断程序的执行,退出到系统下一层。
B.在多重循环中,只能退出最靠近的那一层循环语句。
C.跳出多重循环。
D.只能修改控制变量。
12.两个指针变量的值相等时,表明两个指针变量是__________.
A.占据同一内存单元。 B.指向同一内存单元地址或者都为空。
C.是两个空指针。 D.都没有指向。
13.不正确的指针概念是__________.
A.一个指针变量只能指向同一类型的变量。
B.一个变量的地址称为该变量的指针。
C.只有同一类型变量的地址才能存放在指向该类型变量的指针变量之中。
D.指针变量可以赋任意整数,但不能赋浮点数。
14.设char ch=‘A’;表达式ch!(ch>=‘A’&&ch<=‘Z’)?ch:(ch+32)的值是_________.
A.A B. a C. Z D. z
15.根据C语言的语法规则,下列________个是不合法标识符。
A.While B. Name C. Rern5 D. _exam
16.设单精度变量f,g均为5.0,使f为10.0的表达式是__________.
A. f+=g B. f-=g+5 C. f*=g-15 D. f / =g*10
17. 设整型变量n的值为2,执行语句“n+=n- =n*n ;”后,n的值是__________.
A. 0 B. 4 C. –4 D. 2
18.下列不是赋值语句的是__________.
A.A++ B. a= = b C. a+=b D. a=1
19. 为表示关系x≥y≥z,应使用C语言表达式__________
A.(x>=y)&&(y>=z) B. (x>=y) AND (y>=z)
C.(x>=y>=z) D. (x>=z)&(y>=z)
20.设有数组定义:char array[]=“China”;则数组所占的存贮空间为__________.
A.4个字节 B. 5个字节 C. 6个字节 D. 7个字节
[NextPage]
二、写出下列程序的运行结果
1. main ( )
{ int x=10,y=10;
printf(“%d %d\n”,x——,——y); }
该程序的运行结果是_______________.
2.main( )
{ int j , k , p, s;
s=0 ;
for (j=1; j<=3; j++)
{ p=1;
for(k=1; k<=j; k++)
p=p*k;
s=s+p;
}
printf(“s=%d\n”,s); }
该程序的运行结果是__________________.
3. # include “stdio.h”
main( )
{ int a[]={1,2,3,4,5}, *p;
p=a;
*(p+2)+=2;
printf(“%d, %d ”, *p, *(p+2)); }
该程序的运行结果是___________________________________.
4.main( )
{ int a[]={2,4,6,8,10};
int y=1,x,*p;
p=&a[1];
for(x=0;x<3;x++)
y + =*(p+x);
printf(“%d\n”,y); }
该程序的运行结果是________________.
5.main()
{ int a[5], k;
for(k=0;k<5;k++)
a[k]=10*k ;
printf(“%d”, a[k-1]) ; }
该程序的运行结果是_________________.
[NextPage]
三、判断题
1. 函数一般由函数的说明部分和函数体部分组成。 ( )
2. C语言中数据类型只有整型、实型和字符型。 ( )
3. 数组的下标从1开始。 ( )
4. 假设有int a[10],*p; 则P=&a[0]与p=a等价。 ( )
5. getchar()函数的功能是从键盘上输入一个字符串。 ( )
6. 在C语言中定义一个文件指针的方法为:FILE *fp; ( )
7. 构成数组的各个元素可以有不同的数据类型。 ( )
8. C语言的数据类型只有int 型和 float 型。 ( )
9. 从循环体中退出只能使用goto语句。 ( )
10.Continue语句的作用是继续程序中的下一个循环。 ( )
四、编程题
1. 从键盘上输入20个元素的值存入一维数组a中,然后将下标为(1、3、5、7、9……)的元素值赋值给数组b,输出数组b的内容。
2. 编程序求 3,-30,20,6,77,2,0,-4,-7,99这十个数中最大值与最小值。
3. 输入两个整数,调用函数stu( )求两个数和的立方,返回主函数显示结果。
4. 将文件file1.txt中的内容读出并显示到屏幕上。
5. 编程计算1-100之间的奇数和与偶数和。
[NextPage]
一、单项选择题
1. C 2. C 3. C 4. C D 5. C 6. B 7. D 8. C
9. B 10. C 11. B 12.A 13 D 14. B 15. A 16. A.
17. C 18. B 19. A. 20. C.
二、写出下列程序的运行结果
1.10 9
2.S=9
3. 1,5
4.19
5.40
三、判断题
1. 对 2. 不对 3. 不对 4. 对 5.不对
6. 对 7. 不对 8. 不对 9. 不对 10.不对
[NextPage]
四、编程题
1. main()
{ int m[20],n[10];
int a,b=0;
for(a=0;a<20;a++)
{ scanf(“%d”,&m[a]);
if(a%2= =1)
{ n[b]=m[a];
b++; }
}
}
2. main()
{ int m[10]={ 3,-30,20,6,77,2,0,-4,-7,99},max,min;
max=min=m[0];
for(a=0;a<10;a++)
{ if(m[a]>max)
max=m[a];
if(m[a]min=m[a];
}
printf(“%d,%d”,max,min);
}
[NextPage]
3. int stu(int a,int b)
{ int c;
c=a*a+b*b;
return c; }
main()
{ int x,y,z;
scanf(“%d,%d”,&x,&y);
z=stu(x,y);
printf(“%d”,z); }
4.main()
{ FILE *fp;
Char ch;
fp=fopen(“write.txt”,“r”);
ch=fgetc (fp);
while(ch!= EOF)
{ putchar(ch);
ch=fgetc(fp); }
fclose(fp);
}
5.main()
{
int sum1=0,sum2=0,a,b;
for(a=1;a<=100;a++)
if(a%2= =0) if(a%2= =0)
sum1+=a;
else
sum2+=a;
printf(“%d,%d”,sum1,sum2);
}