当前位置:编程学习 > C/C++ >>

C语言程序考题

选择题
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 x=10,y=3,z;
则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。
A、 1 B、 0 C、 4 D、 3
6、有下列程序段
#include <stdio、h>
#define N 5
#define M 8
void main()
{int i;
for(i=N; i<M; i++)printf("%d\n", i);
}
该程序中的for循环执行的次数是_______。
A)3B)4C)6D)7
7、定义如下变量和数组: 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]); 的输出结果是( )
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、执行以下语句后,d的值是多少。_______
i = 4;
a = i++;
b = i++;
c = i++;
d = a + b + c;
A)12B)13C)14D)15
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、表达式:10!=9的值是( )。
A、 true B、 非零值 C、 0 D、 1
13、设有数组定义:char array[]="hello world";则数组所占的存贮空间为__________。
A)4个字节B)5个字节C)12个字节D)11个字节
14、有如下程序
#include <stdio、h>
void main()
{int x=1,a=0,b=0;
switch(x)
{case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是_______。
A)a=2,b=1B)a=1,b=1
C)a=1,b=0 D)a=2,b=2
15、不能把字符串:Hello!赋给数组b的语句是( )。
A、 char b[10]={'H','e','l','l','o','!'}; B、 char b[10]; b="Hello!";
C、 char b[10];
答案:
我来回答下面的;
12、表达式:10!=9的值是( )。
A、 true B、 非零值 C、 0 D、 1
10!=9是一个关系表达式,其值非0即1,10不等于9 是真值,所以结果为1.选D。
13、设有数组定义:char array[]="hello world";则数组所占的存贮空间为__________。
A)4个字节 B)5个字节 C)12个字节 D)11个字节
这是一个字符串,字符数组的存储空间应是字符串长度加上1个结束标志,字符串长度是字符的个数,一个空格也是一个字符,所以,字符串长度为11,加上结束标志,为12.选C
14、有如下程序
#include <stdio、h>
void main()
{ int x=1,a=0,b=0;
switch(x)
{ case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是_______。
A)a=2,b=1 B)a=1,b=1
C)a=1,b=0 D)a=2,b=2
x的值为1,所以从case1;入口,执行a++,因其后无break语句,所以继续执行a++,b++,得到a=2,b=1.选A
15、不能把字符串:Hello!赋给数组b的语句是( )。
A、 char b[10]={'H','e','l','l','o','!'}; B、 char b[10]; b="Hello!";
C、 char b[10];
不能给字符数组名直接赋值字符串。选B
老大这么多

你也只给15分啊?

~有些关于C语言的问题
1、以下选项中属于C语言的数据类型是( )。
A. 复合型 B. 双精度型 C. 逻辑型 D. 集合型
B正确

2、以下说法中正确的是( )。
A. C语言程序总是从第一个的函数开始执行
B. 在C语言程序中,要调用的函数必须在main()函数中定义
C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分

选C
A是从main()函数开始执行,B中正好相反,main函数中没有可调用函数
D中C语言程序中的main()函数可以放在程序的任何部分

3、选出下列标识符中不是合法的标识符的是( )。
A. hot_do B. cat1 C. _pri D. 2ab

选D 不能以数字作为变量开头

4、下列描述中不正确的是( )。
A、字符型数组中可能存放字符串。
B、可以对字符型数组进行整体输入、输出。
C、可以对整型数组进行整体输入、输出。
D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

选C

5、若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( )。
A. p+1 B. a+1 C. a++ D. ++p

选C
数组名不能进行自加自减

6、设有如下定义: int x=10,y=3,z;
则语句printf(“%d\n”,z=(x%y,x/y)); 的输出结果是( )。
A. 1 B. 0 C. 4 D. 3

选D
x%y==1(X除以Y取余数),x/y==3(X除以Y后去小数点后)
之后再在z=(,)中,取最后一项输出

7、定义如下变量和数组: 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]); 的输出结果是( )
A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9

选C
x[3][3]={{1,2,3},{4,5,6},{7,8,9}}
输出x[0][2] x[1][1] x[2][0]
8、读出以下语句的输出结果是( )。
int x=10,y=10;
printf(“%d %d\n”,x——,——y);
A. 10 10 B. 9 9 C. 9 10 D. 10 9

选D
n——指在下一条语句执行n=n+1,本条语句n不变
——n指在本条语句开始执行n=n+1


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

选C
解释同上

10、设有如下定义:char *aa[2]={“abcd”,“ABCD”};则以下说法中正确的是( )。
A)aa数组成元素的值分别是“abcd”和ABCD“
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符‘a’和‘A’的地址

选C
指针元素都是地址,且指向字符串首地址

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

选C
因为(++a<0)即-1<0为假,k为假,所以k等于零
同时经过++a、b - -后a变成0,b变成3

下面几个自己看着搞吧

真的没空了
要不加我Q378450069在线回答

上一个:c语言求助 急急!!!!!!!!!!!!!
下一个:c语言中break咋用的?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,