1. 运算符________的优先级最高。
A.[ ]
B. +=
C. ?:
D.++
2.main( )
{ int n( n=6*4,n+6),n*2printf(“n=%d\n”,n)}
此程序的输出结果是______________.
A.30
B. 24
C. 60
D. 48
3.若有如下定义,则__________是对数组元素的正确的引用。.
int a[10] , *p p=a
A. *&a[10]
B. a[11]
C. *(p+11)
D. *p *p *p
4.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是__________
A. 0
B. 4
C. - 4
D. 2
5.各种基本数据类型的存贮空间正确的长度排列为__________。
A.Char
C.Char
6.下面的变量说明中__________是正确的。
A.char:a, b, c
B.char abc
C.char a, b, c
D.char a, b, c
7.表达式y=(13>12?15:6>7?8:9)的值为____________ 。
A 9
B 8
C 15
D. 1
8.若x=5,y=3 则y*=x+5y的值为___________.
A. 10
B. 20
C. 15
D. 30
9.能正确表示a和b同时为正或同时为负的逻辑表达式是_________。
A.a>=0||b>=0)&&(a<0 ||b<0)
B.(a>=0 &&b>=0)&&(a<0 &&b<0)
C.(a+b>0) &&(a+b<=0)
D. a*b>0
10.C语言中,合法的字符型常数是_________。
A.‘A’
B.“A”
C. 65
D. A
11.已有定义 int x=3, y=4, z=5则表达式“!(x+y)+z-1&&y+z/2”的值是________。
A.6
B.0
C.2
D.1
12.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。
A.’a’<=c<=’z’
B. (c>=’a’) || (c<=’z’)
C.(‘a’<=c) and (‘z’>=c)
D. (c>=’a’) &&(c<=’z’)
13.设有定义:long x=-123456L则以下能够正确输出变量x值的语句是_______。
A.printf(“x=%d\n”,x)
B.printf(“x=%ld\n”,x)
C.printf(“x=l\n”,x)
C.printf(“x=%D\n”,x)
14.从循环体内某一层跳出,继续执行循环外的语句是:___________。
A. break语句
B.return语句
C.continue语句
D.空语句。
15.C语言用_______表示逻辑“真”值。
A.true
B.t或y
C.非零整型值
D.整型值0
16.为了避免嵌套的条件分支语句if—else 的二义性,C语言规定:C程序中的else总是与_____组成配对关系。
A.缩排位置相同的if
B.在其之前未配对的if
C.在其之前未配对的最近的if
D.同一行上的if
17.在函数中默认存储类型说明符的变量应该是________存储类型。
A.内部静态
B. 外部
C.自动
D. 寄存器
18.C语言中以只读方式打开一个文件应选择_______________参数。
A.“r”
B.“w”
C.“rb”
D.“a”
19.设有数组定义:char array[]=”student”则数组所占的存贮空间为__________。
A.6个字节
B. 7个字节
C. 8个字节
D. 9个字节
20.根据C语言的语法规则,下列________个是不合法标识符。
A.do
B. Name
C. R5
D. _exam
二、判断题
1. C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .EXE 的文件。 ( )
2.在 C 程序中 , 函数既可以嵌套定义 , 也可以嵌套调用。( )
3.在 C 程序中 ,APH 和 aph 代表不同的变量。( )
4.表达式 0195 是一个八进制整数。( )
5.Continue语句的作用是结束本次循环。( )
6.Extern变量的.生命期是整个程序执行期。 ( )
7.C语言中字符串的结束符是’\0’。 ( )
8.利用fclose函数关闭已打开的文件。 ( )。
9.C程序总是从main( ) 函数的第一条语句开始执行的。 ( )
10.数组名代表数组的首地址。( )
三、填空题
1.C语言的预处理语句以__________开头。
2.表达式7+10>2 &&25 %5的结果是_______________。
3.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
Int n=0, chCh=getchar( )
While( __________________ )
{ if ( ________________ ) n++c=getchar( )}
4.C语言中getchar() 函数的功能是_________________________。
5.int *p 的含义是______________________________。
6.定义fp为文件型指针变量的定义方法为_______________。
7.数组 int a[3][3]共定义了____________个数组元素。
四、读程序题。
1. 改正下列程序中不正确的语句。
main( )
{ int a
scanf(“%d”, a)if (a = 1) printf(“One\n”) }
2.写出下列程序的运行结果。
fun(int a, int b)
{ if(a>b) return (a)
Else return (b)}
main()
{ int x=3,y=8,z=6,r
r=fun(fun(x,y),2*z)printf(“%d\n”,r)}
3. 改正下列程序中不正确的语句。
main()
{ int n
float s=1.0
for(n=10n>1n- -)
s=s+1/n
printf(“%6.1f\n”,s)}
4. 写出下列程序的运行结果。
main()
{ int n
For(n=3n<=10n++)
{ if(n%6= =0) breakPrintf(“%d”,n)} }
5.写出下列程序的运行结果。
#include “stdio.h”
Main()
{ int a[]={1,2,3,-4,5}
int m,n,*pp=&a[0]m=*(p+1)n=*(p+4)
printf(“%d %d %d ”,*p,m,n)}
五、编程题
1. 编程计算下列表达式:s=n!(n从键盘上输入)
2.输出1—100之间不能被12整除的数。
3.从键盘上输出10个整数存入一维数组中,按由大到小的顺序输出。
4.从键盘上输入9个数,按3行3列的格式输出。
5.编程将文件read.txt中的字符读出显示到屏幕上。
1、以下选项中属于C语言的数据类型是( )。
A. 复合型
B. 双精度型
C. 逻辑型
D. 集合型
2、以下说法中正确的是( )。
A. C语言程序总是从第一个的函数开始执行
B. 在C语言程序中,要调用的函数必须在main()函数中定义
C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分
3、选出下列标识符中不是合法的标识符的是( )。
A. hot_do
B. cat1
C. _pri
D. 2ab
4、下列描述中不正确的是( )。
A、字符型数组中可能存放字符串。
B、可以对字符型数组进行整体输入、输出。
C、可以对整型数组进行整体输入、输出。
D、 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
5、若已定义:int a[9], *p=a并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( )。
A. p+1
B. a+1
C. a++
D. ++p
6、设有如下定义: int x=10,y=3,z则语句printf("%d\n",z=(x%y,x/y))的输出结果是( )。
A. 1
B. 0
C. 4
D. 3
7、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9}则下面语句for(i=0i<3i++) printf("%d",x[i][2-i])的输出结果是( )
A. 1 5 9
B. 1 4 7
C. 3 5 7
D. 3 6 9
8、读出以下语句的输出结果是( )。
int x=10,y=10
printf(“%d %d\n”,x--,--y)
A. 10 10
B. 9 9
C. 9 10
D. 10 9
9、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。
if(x++>5) printf("%d",x)
else printf("%d\n",x - -)
A. 7和5
B. 6和3
C. 7和4
D. 6和4
10、设有如下定义:char *aa[2]={"abcd","ABCD"}则以下说法中正确的是( )。
A)aa数组成元素的值分别是"abcd"和ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的`首地址
D)aa数组的两个元素中各自存放了字符’a’和’A’的地址
11、以下语句的输出结果是( )。
int a=-1,b=4,k
k=(+ +a<0)&&!(b - -<=0)
printf("%d,%d,%d\n",k,a,b)
A. 1,0,4
B. 1,0,3
C. 0,0,3
D. 0,0,4
12、下列程序的输出结果是( )。
char *p1="abcd", *p2="ABCD", str[50]="xyz"
strcpy(str+2,strcat(p1+2,p2+1))
printf("%s",str)
A. xyabcAB
B. abcABz
C. ABabcz
D. xycdBCD
13、执行下面的程序后,a的值是( )。
#define SQR(X) X*X
main( )
{ int a=10,k=2,m=1
a/=SQR(k+m)/SQR(k+m)
printf("%d\n",a)}
A. 10
B. 1
C. 9
D. 0
14、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。
A.P+i*2
B. P+(i-1)*2
C. P+(i-1)
D. P+i
15、下列程序执行后输出的结果是( )。
int d=1
fun (int p)
{ int d=5
d + =p + +
printf("%d,",d)}
main( )
{ int a=3
fun(a)
d + = a + +
printf("%d\n",d)}
A. 8, 4
B. 9, 6
C. 9, 4
D. 8, 5
16、表达式:10!=9的值是( )。
A. true
B. 非零值
C. 0
D. 1
17、若有说明: int i,j=7, *p=&i, 则与i=j等价的语句是( )。
A. i= *p
B. *p=*&j
C. i=&j
D. i=* *p
18、不能把字符串:Hello!赋给数组b的语句是( )。
A. char b[10]={’H’,’e’,’l’,’l’,’o’,’!’}
B. char b[10]b="Hello!"
C. char b[10]strcpy(b,"Hello!")
D.char b[10]="Hello!"
19、在C程序中有如下语句:char *func(int x,int y)它是( )。
A. 对函数func的定义。
B. 对函数func的调用。
C.对函数func的原型说明。
D. 不合法的。
20、以下程序的输出结果是( )。
char str[15]=”hello!”
printf(“%d\n”,strlen(str))
A. 15
B. 14
C. 7
D. 6
参考答案:
1、B 2、C 3、D 4、C 5、C 6、D 7、C 8、D 9、C 10、D
11、D 12、D 13、B 14、B 15、A 16、D 17、B 18、B 19、C 20、D