单选题(每题1分,共30分)
1.下列有关 C语言的叙述中错误的就是(    )
A. C 语句必须以分号结束
B. 任何一个 C程序中有且只有一个主函数
C. 复合语句在语法上可被瞧作一条语句
D. C 程序中对数据的任何操作都可由运算符实现
2.以下不能定义为用户标识符的就是(    )
A. MAIN
B. _HJ
C. 2ong
D. LINE1
3.以下能正确定义一维数组的就是(    )
A. int a[5]={0,1,2,3,4,5};
B. int a[5]= ”012345”;
C. char a[ ]= ”012345”;
D. char a[5]={0,1,2,3,4,5};
4.执行下列程序段后输出的结果就是(    )
x = 9;
while (x > 7)
{ printf( “*”); x - -; }
A. ****
B. ***
C. **
D. *
5.设 char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句 printf( “%d”, strlen(strcpy(str1, str2))); 后的输出结果就是(    )
A. 9
B. 8
C. 5
D. 3
6.若用数组名作为函数调用的实参 , 则传递给形参的就是(    )
A. 数组的首地址
B. 数组第一个元素的值
C. 数组中全部元素的值
D. 数组元素的个数
7.在 C程序中 , 若未在函数定义时说明函数类型 , 则函数默认的类型为(    )
A. void
B. double
C. int
D. char
8.下面不能正确进行字符串赋值操作的语句就是(    )
A. char s[5]={"ABCD"};
B. char s[5]; s="ABCD";
C. char *s;s="ABCDEF";
D. char *s="ABCD";
9.设有说明 int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为 3 的就是(    )
A. ++p
B. ++(*p)
C. *(++p)
D. *(p+=2)
10.下面程序的输出结果就是(    )
int m=13;
int fun( int x, int y)
{ int m=3; return( x*y-m); }
main( )
{ int a=7,b=5;
printf( “%d n”, fun(a,b)/m); }
A. 1
B. 2
C. 3
D. 10
11.以下 4 组用户定义标识符中,全部合法的一组是(    )
A. )_total clu_1 sum
B. if -max turb
C. txt REAL 3COM
D. int k_2 _001
12.以下程序的输出结果是(    )
#include
main( ){
int a = 1, b = 2, c = 3;
printf( “%d”, c>b>a);
}
A. 2
B. 1
C. 0
D. 3
13.以下选项中正确的叙述是(    )
A. 在 C 语言中, main 函数必须位于文件的开头
B. C 语言每行中只能写一条语句
C. C 语言本身没有输入、输出语句
D. 对一个 C语言进行编译预处理时,可检查宏定义的语法错误
14.设有定义: int a,*pa=&a; 以下 scanf 语句中能正确为变量 a 读入数据的是(    )
A. scanf("%d",pa);
B. scanf("%d",a);
C. scanf("%d",&pa);
D. scanf("%d",*pa);
15.若有以下程序段,
int c1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后, c3 中的值是(    )
A. 0
B. 0.5
C. 1
D. 2
16.能正确表示逻辑关系:“ a≥=10 或 a≤0”的 C语言表达式是(    )
A. a>=10 or a<=0
B. a>=0|a<=10
C. a>=10 &&a<=0
D. a>=10 ‖a<=0
17.执行下面的程序时,将 1、2、3、4 分别赋给 a、b、c、d,正确的输入是(    )
main( )
{
int a,b,c,d;
scanf( “%d,%d,%d%d”,&a,&b,&c,&d);
}
A. 1 2 3 4
B. 1 2 3 ,4
C. 1 ,2,3,4
D. 1 ,2,3 4
18.有以下程序段
main( )
{
int k=0;
while(k=1) k++;
}
则 while 循环执行的次数是( ) 赋值语句,只要不是 0,一直循环(    )
A. 无限次
B. 有语法错,不能执行
C. 一次也不执行
D. 执行 1 次
19.以下程序的输出结果是(    )
#include
main( )
{
int a = 5, b = 4, c = 6, d;
printf( “%d”,d=a>b?(a>c?a:c): b);
}
A. 5
B. 4
C. 6
D. 不确定
20.下面是对数组 a 的初始化,其中 不正确 的是(    )
A. a[5] ={"ABCD"}
B. a[5] ={'A' ,'B' ,'C' ,'D'}
C. a[5] =""
D. a[5] ="ABCDE"//a[6]= "ABCDE" 因为会自动加一个 \0
21.以下不是 C 语言的特点的是(    )
A. C 语言简洁、紧凑
B. 能够编制出功能复杂的程序
C. C 语言可以直接对硬件进行操作
D. C 语言移植性好
22.以下不正确的 C 语言标识符是(    )
A. ABC
B. abc
C. a_bc
D. ab.c
23.一个 C 语言程序是由(    )
A. 一个主程序和若干子程序组成
B. 函数组成
C. 若干过程组成
D. 若干子程序组成
24.一个算法应该具有 “确定性 ”等 5 个特性,对另外 4 个特性的描述中错误的是(    )
A. 有零个或多个输入
B. 有零个或多个输出
C. 有穷性
D. 可行性
25.设变量 a 是整型, f 是实型, i 是双精度型,则表达式 10+‘a’+i*f 值的数据类型为(    )
A. int
B. float
C. double
D. 不确定
26.在 C 语言中, char型数据在内存中的存储形式是(    )
A. 补码
B. 反码
C. 源码
D. ASCII 码
27.有如下程序,输入数据: 12345M678后(表示回车), x 的值是(    )
正在上传…
取消
A. 12345
B. 123
C. 45
D. 345
28.若有以下定义 int a,b; float x,则正确的赋值语句是(    )
A. a=1,b=2
B. b++;
C. a=b=5
D. b=int(x);
ABCD 纠错 标记
29.以下程序的执行结果是(    )
正在上传…
取消
A. 11,10
B. 9,10
C. 11,9
D. 10,9
ABCD 纠错 标记
30.巳知字母 A 的 ASCII 码是 65,以下程序的执行结果是(    )
正在上传…
取消
A. A,Y
B. 65,65
C. 65,90
D. 65,89
阅读程序题(每题4分,共20)
1.
#include <stdio.h>
main()_
{ char grade=’C’;
switch(grade)
{
case ‘A’: printf(“90-100\n”);
case ‘B’: printf(“80-90\n”);
case ‘C’: printf(“70-80\n”);
case ‘D’: printf(“60-70\n”); break;
case ‘E’: printf(“<60\n”);
default : printf(“error!\n”);
}
}
运行结果为:_______________
2.
#include <stdio.h>
main()
{ int y=9;
for(;y>0;y- -)
if(y%3==0)
{ printf(%d”,- -y);
}
}
运行结果为_______________
3.
#include <stdio.h>
main()
{ int i,sum=0; i=1;
do{ sum=sum+i; i++; }while(i<=10);
printf(“%d”,sum);
}
运行结果为:_______________
4.
#include <stdio.h>
main( )
{ int i,k,a[10],p[3];
k=5;
for(i=0;i<10;i++)
a[i]=i;
for(i=0;i<3;i++)
p[i]=a[i*(i+1)];
for(i=0;i<3;i++)
k+=p[i]*2;
printf("%d\n",k);
}
运行结果为:_______________
5.
#include <stdio.h>
int m[3][3]={{1},{2},{3}};
int n[3][3]={1,2 ,3};
main( )
{ printf(“%d,”, m[1][0]+n[0][0]);
printf(“%d\n”,m[0][1]+n[1][0]);
}
运行结果为:_______________
判断题(每题1分,共15分)
618活动是什么时候开始20221.若i =3,则printf("%d",-i++);输出的值为 -3
2.表达式 (j=3, j++) 的值是3
3.C语言中只能逐个引用数组元素而可以一次引用整个数组
4.参加位运算的数据只能是整型的数据
5.若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为100
6.若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"0"
7.若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为5
8.若有宏定义:#define S(a,b) t=a;a=b;b=t虽然变量t没定义,宏定义中已经定义,可直接使用
9.#define 和printf 都是C语句
10.关系运算符<= 与 == 的优先级不相同
11.若有说明int c;则while(c=getchar());不是正确的C语句
12.若有int ⅰ=10, j=0;则执行完语句if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为10