1、以下选项中属于C语言的数据类型是( )。
A. 复合型
B. 双精度型
C. 逻辑型
D. 集合型
2、以下说法中正确的是( )。
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
C 程序设计试题库C语言概述练习题1.一个C程序的执行是从( )
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
2.以下叙述正确的是:( )
A.在C程序中,main函数必须位于程序的最前面
B.程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
3.以下叙述不正确的是:( )
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
4.C语言规定:在一个源程序中,main的位置( )
A.必须在最开始
B.必须在系统调用的库函数后面
C.可以任意
D.必须在最后
5.一个C语言程序是由( )
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
6.C源程序的基本单位是____________
7.一个C源程序中至少包括一个____________
8.在一个C源程序中,注释部分两侧的分界符分别为____________ 和____________
9.在C语言中,输入操作是由库函数____________ 完成的,输出操作是由库函数____________ 完成的
c语言模拟练习题
一、 判断题(2×8=16分)
1、Printf()函数总是从新行的起始位置开始打印。 ( )
2、所有的变量在使用前都必须予以申明。( )
3、在申明变量时必须给出变量的类型。( )
4、C语言认为变量number和NuMbEr是相同的。( )
5、打印三行输出的C语言程序必须用三条printf语句。( )
6、求余运算符%只能用于两个整数操作数。( )
7、switch选择结构中必须有default子句。( )
8、如果x>y或a<b为真,那么表达式(x>y&&a<b)为真。( )
二、 选择题(3×16=48分)
1、下面实现换行功能的格式符为 。( )
A. \t B. \n C. \a D. \k
2. C语言程序由什么组成?(单选)
A. 子程序 B. 主程序和子程序 C. 函数 D. 过程
3. 下面哪个表达式的值为4.
A. 11/3 B. 11.0/3
C. (float)11/3 D. (int)(11.0/3+0.5)
4. 该源程序执行后,屏幕上显示什么?
void main()
{
int a
float b
a=4
b=9.5
printf("a=%d,b=%4.2f\n",a,b)
}
A. a=%d,b=%f\n B. a=%d,b=%f
C. a=4,b=9.50 D. a=4,b=9.5
5. 若有以下说明语句:
char s='\\\092'
则下面哪一项是正确的.
A. 使s的值包含2个字符 B. 说明语句不合法
C. 使s的值包含6个字符 D. 使s的值包含4个字符
6.若k,g均为int型变量,则以下语句的输出为哪一项?
int k,g
k=017
g=111
printf("%d,",k)
printf("%x\n",g)
A. 15,6f B. f,6f C. f,111 D. 15,111
7. 在C语言的if语句中,用作判断的表达式为___。
A. 关系表达式 B. 逻辑表达式
C. 算术表达式 D. 任意表达式
8. 请问:下面这个程序段的输出是什么?
int a,b,c
a=7b=8c=9
if(a>b)
a=b,b=cc=a
printf("a=%d b=%d c=%d\n",a,b,c)
A. a=7 b=8 c=7 B. a=7 b=9 c=7
C. a=8 b=9 c=7 D. a=8 b=9 c=8
9. 下面这个程序的输出是什么?
#include <stdio.h>
main()
{
int y=10
while(y--)
printf("y=%d\n",y)
}
A. y=0 B. while构成死循环 C. y=1 D. y=-1
10. 若有以下说明和语句,则输出结果是___。
char str[]="\"c:\\abc.dat\""
printf("%s",str)
A. 字符串中有非法字符 B. \"c:\\abc.dat\"
C. "c:\abc.dat" D. "c:\\abc.dat"
11. 如果要把常量327存入变量a中,a不能定义成哪些类型?
A. int B. char C. long D. float
12. C语言中,预处理总是以 符号开头。 ( )
A. ¥ B.# C. @ D. ◇
13. C语言中,double类型的数据占 个字节的空间。( )
A. 1 B.2 C. 4 D. 8
14. 下面语句执行完后,b的值为 。 ( )
int a=b=10
b=10+(a++)
A. 10 B.19 C. 20 D. 21
15. 这段程序中的常量有: (多选) ( )
#define PI 3.14
void main()
{
int sum
sum = 10 + 15
printf("sum=%d\n",sum)
printf("result is 25\n")
}
这段程序中常量有:
A. 10 B. sum C. 15
D. 25 E. main F. PI
16. 指出下面错误的表达式:(多选) ( )
A. a+b=5 B. 56=a11 C. i=i++
D. 5.6+6.2%3.1 E. 12 F. a=5,b=6,c=7
三、 填空题(3×8=24分)
1、C语言程序都是从 函数开始执行。
2、函数体用 开始,用 结束。
3、C语言的语句都以 结束。
4、执行循环结构中的 语句能够立即执行下一次循环。
5、执行循环结构或switch结构中的 语句能够立即退出该结构。
6、输出字符串的格式化符为 。
7、C语言中数组名表示数组的 。
1.60~69<60
error!
2.**1**
**3**
3.C
4.sjhiu
5.2*x+4*y==90 或 4*x+2*y==90
6.C