C语言程序设计单选题.docx
《C语言程序设计单选题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计单选题.docx(69页珍藏版)》请在冰豆网上搜索。
![C语言程序设计单选题.docx](https://file1.bdocx.com/fileroot1/2023-2/1/5fb3733b-90cf-4723-a59a-d788f2cefcb6/5fb3733b-90cf-4723-a59a-d788f2cefcb61.gif)
C语言程序设计单选题
一、单项选择共206题
第1题题号:
3123
下列数据中属于"字符串常量"的是
A:
ABC
B:
"ABC"
C:
'ABC'
D:
'A'
答案:
B
第2题题号:
3090
能正确表示逻辑关系:
"a≥10或a≤0"的C语言表达式是
A:
a>=10ora<=0
B:
a>=0|a<=10
C:
a>=10&&a<=0
D:
a>=10||a<=0
答案:
D
第3题题号:
3122
从循环体内某一层跳出,继续执行循环外的语句是
A:
break语句
B:
return语句
C:
continue语句
D:
空语句
答案:
C
第4题题号:
3114
C语言源程序名的后缀是
A:
exe
B:
c
C:
obj
D:
cp
答案:
B
第5题题号:
3120
下列()表达式的值为真,其中a=5;b=8;c=10;d=0
A:
a*2>8+2
B:
a&&d
C:
(a*2-c)||d
D:
a-b答案:
D
第6题题号:
3124
C语言源程序文件经过C编译程序编译连接之后生成一个后缀为()的可执行文件
A:
.c
B:
.obj
C:
.exe
D:
.bas
答案:
C
第7题题号:
3162
若变量已正确定义,执行语句scanf("%d,%d,%d",&k1,&k2,&k3);时,___是正确的输入
A:
2030,40
B:
203040
C:
20,3040
D:
20,30,40
答案:
D
第8题题号:
3098
在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类型是
A:
extern
B:
register
C:
auto
D:
static
答案:
D
第9题题号:
3161
C语言源程序文件经过C编译程序编译后生成的目标文件的后缀为
A:
.c
B:
.obj
C:
.exe
D:
.bas
答案:
B
第10题题号:
3109
C语言的if语句中,用作判断的表达式为
A:
任意表达式
B:
逻辑表达式
C:
关系表达式
D:
算术表达式
答案:
A
第11题题号:
3129
设有说明:
charc;intx;doublez;则表达式c*x+z值的数据类型为
A:
float
B:
int
C:
char
D:
double
答案:
D
第12题题号:
3166
定义共用体的关键字是
A:
union
B:
enum
C:
struct
D:
typedef
答案:
A
第13题题号:
3153
以下正确的字符串常量是
A:
"\\\"
B:
'abc'
C:
OlympicGames
D:
'A'
答案:
A
第14题题号:
3126
定义结构体的关键字是
A:
union
B:
enum
C:
struct
D:
typedef
答案:
C
第15题题号:
3128
下列正确的标识符是
A:
_do
B:
6a
C:
%y
D:
a+b
答案:
A
第16题题号:
3091
C程序的基本结构单位是
A:
文件
B:
语句
C:
函数
D:
表达式
答案:
C
第17题题号:
3130
下列说法中错误的是
A:
一个数组只允许存储同种类型的变量
B:
如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值
C:
数组的名称其实是数组在内存中的首地址
D:
当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改
答案:
B
第18题题号:
3139
算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为
A:
算术运算、赋值运算、关系运算
B:
关系运算、赋值运算、算术运算
C:
算术运算、关系运算、赋值运算
D:
关系运算、算术运算、赋值运算
答案:
C
第19题题号:
3144
若x=2,y=3则x||y的结果是
A:
0
B:
1
C:
2
D:
3
答案:
B
第20题题号:
3110
C语言程序的三种基本结构是顺序结构、选择结构和______结构.
A:
循环
B:
递归
C:
转移
D:
嵌套
答案:
A
第21题题号:
3092
设有说明:
charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为().
A:
float
B:
int
C:
char
D:
double
答案:
D
第22题题号:
3106
执行下列程序段后,m的值是________.
intw=2,x=3,y=4,z=5,m;
m=(ww:
x;
m=(mm:
y;
m=(mm:
z;
A:
4
B:
3
C:
5
D:
2
答案:
D
第23题题号:
3108
C语言的switch语句中case后
A:
只能为常量
B:
只能为常量或常量表达式
C:
可为常量或表达式或有确定值的变量及表达式
D:
可为任何量或表达式
答案:
B
第24题题号:
3100
C语言函数的隐含存储类别是
A:
static
B:
auto
C:
register
D:
extern
答案:
D
第25题题号:
3142
以下程序的执行结果是________.
main()
{intw=1,x=2,y=3,z=4;
w=(wx:
w;
w=(wy:
w;
w=(wz:
w;
printf("%d",w);}
A:
1
B:
2
C:
3
D:
4
答案:
D
第26题题号:
3160
为表示关系x≥y≥z,应使用C语言表达式
A:
(x>=y)&&(y>=z)
B:
(x>=y)AND(y>=z)
C:
(x>=y>=z)
D:
(x>=z)&(y>=z)
答案:
A
第27题题号:
3167
下列关于指针定义的描述,___________是错误的
A:
指针是一种变量,该变量用来存放某个变量的地址值的
B:
指针是一种变量,该变量用来存放某个变量的值
C:
指针变量的类型与它所指向的变量类型一致
D:
指针变量的命名规则与标识符相同
答案:
B
第28题题号:
3088
下列变量中合法的是
A:
B.C.Tom
B:
3a6b
C:
_6a7b
D:
$ABC
答案:
C
第29题题号:
3145
C语言中,switch后的括号内表达式的值可以是
A:
只能为整型
B:
只能为整型,字符型,枚举型
C:
只能为整型和字符型
D:
任何类型
答案:
D
第30题题号:
3159
字符串指针变量中存入的是
A:
字符串
B:
字符串的首地址
C:
第一个字符
D:
字符串变量
答案:
B
第31题题号:
3135
C语言函数内定义的局部变量的隐含存储类别是
A:
static
B:
auto
C:
register
D:
extern
答案:
B
第32题题号:
3094
C语言中,逻辑"真"等价于
A:
大于零的数
B:
非零的数
C:
大于零的整数
D:
非零的整数
答案:
B
第33题题号:
3117
已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是
A:
A,B
B:
A,68
C:
65,66
D:
65,68
答案:
C
第34题题号:
3125
若有定义inta[10],*p=a;,则p+5表示
A:
元素a[5]的地址
B:
元素a[5]的值
C:
元素a[6]的地址
D:
元素a[6]的值
答案:
A
第35题题号:
3102
若inta=3,则执行完表达式a-=a+=a*a后,a的值是
A:
-15
B:
-9
C:
-3
D:
0
答案:
D
第36题题号:
3157
若有如下定义和语句,且0<=i<5,下面()是对数值为3数组元素的引用
inta[]={1,2,3,4,5},*p,i;
p=a;
A:
*(a+2)
B:
a[p-3]
C:
p+2
D:
a+3
答案:
A
第37题题号:
3165
main()
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
case1:
a++;
case2:
a++;b++;}printf("a=%d,b=%d",a,b);
}该程序的输出结果是()
A:
2,1
B:
1,1
C:
1,0
D:
2,2
答案:
A
第38题题号:
3143
以下程序的输出结果是________.
voidfun(inta,intb,intc)
{a=456;b=567;c=678;}
main()
{intx=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d\n",z,y,x);}
A:
30,20,10
B:
10,20,30
C:
456567678
D:
678567456
答案:
A
第39题题号:
3137
有定义:
char*p1,*p2;则下列表达式中正确合理的是
A:
p1/=5
B:
p1*=p2
C:
p1=&p2
D:
p1+=5
答案:
C
第40题题号:
3099
若有以下定义和语句:
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
不能表示a数组元素的表达式是
A:
*p
B:
a[10]
C:
*p++
D:
a[*p-a]
答案:
D
第41题题号:
3147
对于定义,char*aa[2]={"abcd","ABCD"},选项中说法正确的是
A:
aa数组元素的值分别是"abcd"和"ABCD"
B:
aa是指针变量,它指向含有两个数组元素的字符型一维数组
C:
aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D:
aa数组的两个元素中各自存放了字符'a'和'A'的地址
答案:
D
第42题题号:
165
下列定义数组的语句中正确的是()。
A:
#definesize10charstr1[size],str2[size+2];
B:
charstr[];
C:
intnum['10'];
D:
intn=5;inta[n][n+2];
答案:
A
第43题题号:
106
以下叙述中不正确的是()。
A:
一个好的程序应该有详尽的注释
B:
在C程序中,赋值运算符的优先级最低
C:
在C程序中,j++;是一条赋值语句
D:
C程序中的#include和#define均不是C语句
答案:
B
第44题题号:
118
已知year为整型变量,不能使表达式(year%4==0&&year%100!
=0)
||year%400==0的值为“真”的数据是()。
A:
1990
B:
1992
C:
1996
D:
2000
答案:
A
第45题题号:
153
在C语言中,if语句后的一对原括号中,用以决定分支的流程的表
达式()。
A:
只能用逻辑表达式
B:
只能用关系表达式
C:
只能用逻辑表达式或关系表达式
D:
可用任意表达式
答案:
D
第46题题号:
144
设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。
A:
552
B:
144
C:
264
D:
-264
答案:
D
第47题题号:
101
以下数据中,不正确的数值或字符常量是()。
A:
8.9e1.2
B:
10
C:
0xff00
D:
82.5
答案:
A
第48题题号:
135
已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为()。
chara='a';a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
A:
b,c
B:
a--运算不合法,故有语法错
C:
98,c
D:
格式描述和输出项不匹配,输出无定值
答案:
C
第49题题号:
198
设有以下语句,若0charstr[4][2]={"aaa","bbb","ccc","ddd"},*strp[4];
intj;
for(j=0;j<4;j++)
strp[j]=str[j];
A:
strp
B:
str[k]
C:
strp[k]
D:
*strp
答案:
A
第50题题号:
199
若有inta[][]={{1,2},{3,4}};则*(a+1),*(*a+1)的含义分别为()。
A:
非法,2
B:
&a[1][0],2
C:
&a[0][1],3
D:
a[0][0],4
答案:
B
第51题题号:
136
下列程序的输出结果为()。
main()
{intm=7,n=4;
floata=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf("%f\n",x);
}
A:
27.000000
B:
27.500000
C:
28.000000
D:
28.500000
答案:
A
第52题题号:
159
下列程序的输出为()。
main()
{inty=10;
while(y--);
printf("y=%d\n",y);
}
A:
y=0
B:
while构成无限循环
C:
y=1
D:
y=-1
答案:
D
第53题题号:
189
若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()。
A:
intp=&x;
B:
int*p=x;
C:
int*p=&x;
D:
*p=*x;
答案:
C
第54题题号:
128
若int类型数据占两个字节,则下列语句的输出为()。
intk=-1;printf("%d,%u\n",k,k);
A:
-1,-1
B:
-1,32767
C:
-1,32768
D:
-1,65535
答案:
D
第55题题号:
179
以下函数调用语句中实参的个数是()。
exce((v1,v2),(v3,v4,v5),v6);
A:
3
B:
4
C:
5
D:
6
答案:
A
第56题题号:
125
下列程序的输出结果是()。
main()
{inta=7,b=5;
printf("%d\n",b=b/a);
}
A:
0
B:
5
C:
1
D:
不确定值
答案:
A
第57题题号:
187
经过下列的语句intj,a[10],*p;定义后,下列语句中合法的是()。
A:
p=p+2;
B:
p=a[5];
C:
p=a[2]+2;
D:
p=&(j+2);
答案:
A
第58题题号:
100
以下标识符中,不能作为合法的C用户定义标识符的是()。
A:
putchar
B:
_double
C:
_123
D:
INT
答案:
A
第59题题号:
168
若输入ab,程序运行结果为()。
main()
{staticchara[2];
scanf("%s",a);
printf("%c,%c",a[1],a[2]);
}
A:
a,b
B:
a,
C:
b,
D:
程序出错
答案:
C
第60题题号:
102
以下数据中,不正确的数值或字符常量是()。
A:
c
B:
66
C:
0xaa
D:
50
答案:
A
第61题题号:
130
以下程序段的执行结果是()。
doublex;x=218.82631;printf("%-6.2e\n",x);
A:
输出格式描述符的域宽不够,不能输出
B:
输出为21.38e+01
C:
输出为2.2e+02
D:
输出为-2.14e2
答案:
C
第62题题号:
115
先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是()。
A:
c='a';
B:
c="a";
C:
c="97";
D:
C='97'
答案:
A
第63题题号:
163
下列数组说明中,正确的是()。
A:
intarray[][4];
B:
intarray[][];
C:
intarray[][][5];
D:
intarray[3][];
答案:
A
第64题题号:
119
下列运算符中,不属于关系运算符的是()。
A:
<
B:
>
C:
>=
D:
!
答案:
D
第65题题号:
178
以下对C语言函数的描述中,正确的是()。
A:
C程序必须由一个或一个以上的函数组成
B:
C函数既可以嵌套定义又可以递归调用
C:
函数必须有返回值,否则不能使用函数
D:
C程序中有调用关系的所有函数必须放在同一个程序文件中
答案:
A
第66题题号:
137
若给定条件表达式(M)?
(a++):
(a--),则其中表达式M()。
A:
和(M==0)等价
B:
和(M==1)等价
C:
和(M!
=0)等价
D:
和(M!
=1)等价
答案:
C
第67题题号:
166
下列定义数组的语句中不正确的是()。
A:
staticinta[2][3]={1,2,3,4,5,6};
B:
staticinta[2][3]={{1},{4,5}};
C:
staticinta[][3]={{1},{4}};
D:
staticinta[][]={{1,2,3},{4,5,6}};
答案:
D
第68题题号:
181
C语言中函数调用的方式有()。
A:
函数调用作为语句一种
B:
函数调用作为函数表达式一种
C:
函数调用作为语句或函数表达式两种
D:
函数调用作为语句、函数表达式或函数参数三种
答案:
D
第69题题号:
171
在C语言的函数中,下列正确的说法是()。
A:
必须有形参
B:
形参必须是变量名
C:
可以有也可以没有形参
D:
数组名不能作形参
答案:
C
第70题题号:
200
若有定义:
char*p1,*p2,*p3,*p4,ch;
则不能正确赋值的程序语句为()。
A:
p1=&ch;scanf("%c",p1);
B:
p2=(char*)malloc
(1);scanf("%c",p2);
C:
*p3=getchar();
D:
p4=&ch;*p4=getchar();
答案:
C
第71题题号:
108
设C语言中,int类型数据占2个字节,则short类型数据占()。
A:
1个字节
B:
2个字节
C:
4个字节
D:
8个字节
答案:
B
第72题题号:
147
执行下列语句后,a和b的值分别为()。
inta,b;
a=1+'a';
b=2+7%-4-'A';
A:
-63,-64
B:
98,-60
C:
1,-60
D:
79,78
答案:
B
第73题题号:
167
下列语句中,不正确的是()。
A:
staticchara[2]={1,2};
B:
staticinta[2]={'1','2'};
C:
staticchara[2]={'1','2','3'};
D:
staticchara[2]={'1'};
答案:
C
第74题题号:
172
在C语言程序中()。
A:
函数的定义可以嵌套,但函数的调用不可以嵌套
B:
函数的定义不可以嵌套,但函数的调用可以嵌套
C:
函数的定义和函数调用均可以嵌套
D:
函数的定义和函数调用不可以嵌套
答案:
B
第75题题号:
195
若有下列定义和语句,则对a数组元素的非法引用是()。
inta[2][3],(*pt)[3];pt=a;
A:
pt[0][0]
B:
*(pt+1)[2]
C:
*(pt[1]+2)
D:
*(a[0]+2
答案:
B
第76题题号:
120
假设所有变量均为整型,表达式:
a=2,b=5,a>b?
a++:
b++,a+b的值
是()。
A:
7
B:
8
C:
9
D:
2
答案:
B
第77题题号:
105
以下运算符中,优先级最高的运算符是()。
A:
=
B:
!
=
C:
*(乘号)
D:
()
答案:
D
第78题题号:
185
下列程序运行结果为:
#defineP3
#defineS(a)P*a*a
main()
{intar;
ar=S(3+5);
printf("\n%d",ar);
}
A:
192
B:
29
C:
27
D:
25
答案:
B
第79题题号:
191
设有说明int(*ptr)[M];其中标识符ptr是()。
A:
M个指向整型变量的指针
B:
指向M个整型变量的函数指针
C:
一个指向具有M个整型元素的一维数组的指针
D:
具有M个指针元素的一维指针数组,每个元素都只能指向整型量
答案:
C
第80题题号:
138
以下程序的输出结果是()。
main()
{inti,j,k,a=3,b=2;
i=(--a==b++)?
--a:
++b;
j=a++;k=b;
printf("i=%d,j=%d,k=%d\n",i,j,k);
}
A:
i=2,j=1,k=3
B:
i=1,j=1,k=2
C:
i=4,j=2,k=4
D:
i=1,j=1,k=3
答案:
D
第81题题号:
152
以下程序的运行结果是()。
main()
{intn;
for(n=1;n<=10;n++)
{
if(n%3==0)continue;
printf("%d",n);
}
}
A:
12457810
B:
369
C:
12
D:
1234567890
答案:
A
第82题题号:
205
变量p为指针变量,若p=&a,下列说法不正确的是()。
A:
&*p==&a
B:
*&a==a
C:
(*p)++==a++
D:
*(p++)==a++
答案:
D
第83题题号:
91
以下数值中,不正确的八进制数或十六进制数是()。
A:
0x16
B:
16
C:
-16
D:
0xaaaa
答案:
C
第84题题号:
201
当定义一个结构体变量时,系统分配给它的内存是()。
A:
各成员所需内存量的总和
B:
结构中第一个成员所需内存量
C:
结构中最后一个成员所需内存量
D:
成员中占内存量最大者所需的容量
答案:
A
第85题题号:
143
C语言中以下几种运算符的优先次序()的排列是正确的。
A:
由高到低为:
!
&&,||,算术运算符,赋值运算符
B:
由高到低为:
!
算术运算符,关系运算符,&&,||,赋值运算符
C:
由高到低为:
算术运算符,关系运算符,赋值运算符,!
&&,||
D:
由高到低为:
算术运算符,关系运算符,!
&&,||,赋值运算符
答案:
B
第86题题号:
129
若k,g均为int型变量,则下列语句的输出为()。
k=017;g=111;printf("%d\t",++k);printf("%x\n",g++);
A:
156f
B:
1670
C:
1571
D:
166f
答案:
D
第87题题号:
132
若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),
则以下程序段的执行结果是()。
ch='a';k=12;printf("%x,%o,",ch,ch,k);printf("k=%%d\n",k);
A:
因变量类型与格式描述符的类