C语言开发基础(习题卷21)
第1部分:单项选择题,共73题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]有以下程序段: charch; int k; ch='a'; k =12; printf("%c,%d,",ch,ch,k); printf("k=%d\n",k); 已知字符a的ASCII码十进制值为97,则执行上述程序段后输出的结果是( )。
A)因变量类型与格式描述符的类型不匹配输出无定值
B)输出项与格式描述符个数不符,输出为零值或不定值
C)a,97,12k=12
D)a,97,k=12
答案:D
解析:字符变量的值是该字符的ASCII码值,可以参与整型变量所允许的任何运算。“ch='a'”,%c表示以字符格式输出ch的值,所以输 出为a;%d表示以十进制代码的形式输出ch的值,为97;k没有对应的输出格式,不输出。在第二个语句中,首先输出“k=”,然 后以十进制代码输出k的值,为12。答案选择D选项。
2.[单选题]以下程序段的输出结果是___( )___.
int k,n,m;
n=10;m=1;k=1;
while (k<=n) {m*=2;k+=4;}
printf("%d\n",m);
A)4
B)16
C)8
D)32
答案:C
解析:
3.[单选题]已知a=12,则表达式a+=a-=a*=a的结果是_______.
A)0
B)144
C)12
D)-264
答案:A
解析:
4.[单选题]有下列程序
#include <stdio.h>
Main()
{ char b[] = "happynewyear";
Printf("%s%s","12345678"+4,b+8);
}
程序执行后的输出结果是______。
A)5678wyear
B)52345678year
C)12345682year
D)5678year
答案:D
解析:
5.[单选题]表达式 (int)((double)9/2)-9%2 的值是__ ____。
A)5
B)4
C)0
D)3
答案:D
解析:
6.[单选题]若有以下宏定义:
#define N 2
#define Y(n) (N+1)*n
则执行语句int z; z=2*(N+Y(5));后z的值是____
A)50
B)34
C)19
D)无定值
答案:B
解析:
7.[单选题]在C语言中,以下选项中不能正确表示10×1000之值的是( )。
A)1.0E4.0
B)1.E4
C)10E3
D)1.0e4
答案:A
解析:实型常量用带小数点的数字表示,其值有两种表达形式,分别为十进制小数形式和指数形式。指
数形式由十进制数加阶码标 志“e”或“E”以及阶码(只能为整数,可以带符号)组成,而A项中阶码4.0是浮点数,所以A项不能正确表示10×1000之值,B C D项都表示正确并且值为10000,答案选择A选项。
8.[单选题]以下不能将s所指字符串正确复制到t所指存储空间的是( )
A)do{*t++=*s++;}while(*s );
B)for(i=0;t[i]=s[i];i++);
C)while(*t=*s){t++;s++}
D)for(i=0,j=0;t[i++]=s[j++]; );
答案:A
解析:do{*t++=*s++;}while(*s); 不能因为当*s='\0'时,while(*s)跳出循环,这样字符串结束标志'\0'没有复制给
printf函数输出整数时不能使用*t,造成*t不完整。注意,*t++=*s++是先执行t=*s,然后才进行t=t+1,s=s+1。B),C),D)都能将'\0'复制过去。
9.[单选题]下列关于枚举的说法,错误的是()
A)枚举是一个指定的常量
B)枚举表示一组有限的值
C)枚举中可以有自己的方法
D)可以为枚举类型中元素赋整数值
答案:C
解析:
10.[单选题]若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元
Int *p;
P= ______ malloc(sizeof(int) );
则应填入______。
B)int *
C)(*int)
D)(int*)
答案:D
解析:
11.[单选题]下面程序段( )。for(t=1;t<=100;t++){scanf(“%d”,&x);if(x<0) continue;printf(“%3d”,t);}
A)当x<0时整个循环结束
B)x>=0时什么也不输出
C)printf函数永远也不执行
D)最多允许输出100个非负整数
答案:D
解析:
12.[单选题]下列程序段执行时,循环体的执行次数是( )。 int i=7,a=0; for (i++;i< 8;i++) a+=2;
A)0次
B)1次
C)8次
D)7次
答案:A
解析:
13.[单选题]使用C语言编写得到的源文件经过编译、链接后生成可执行文件,可执行文件的后缀名是( )。
A)c
B)obj
C)exe
D)doc
答案:C
解析:
14.[单选题]有两个关系R,S如下,由关系R和S得到关系T,则所使用的操作为( )。
A)并
B)自然连接
C)差
D)交
答案:A
解析:本题中T为R∪S所得,并运算是将S中的记录追加到R后面。B项,自然连接指去掉重复属性的等
值连接;C项,差又写为R-S, 结果是属于R但不属于S的记录组成的集合;D项,R∩S即交,结果是既属于R又属于S的记录组成的集合。答案选择A选项。
15.[单选题]以下只有在使用时才为该类型变量分配内存的存储类说明是().
A)auto 和 static
B)auto 和 register
C)register 和 static
D)extern 和 register
答案:B
解析:
16.[单选题]若有定义: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
解析:
17.[单选题]下列哪种数据类型是引用类型( )
A)string
B)int
C)char
D)float
答案:A
解析:
18.[单选题]有以下程序
#include <iostream>
Using namespace std;
Int main()
{
int x;
cin>>x;
if(x--<5)
cout<<x<<endl;
else
cout<<x++<<endl;;
return 0;
}
程序执行后,如果从键盘上输入5,则输出结果是( )。
A)3
B)4
C)5
D)6
答案:B
解析:
19.[单选题]下面的4段程序都试图求解整数1~l0的和,不能满足要求的是( )。
A)#include <iostream>
using namespace std;
int main()
{
int i, sum;
for(i=1,sum=0;i<=10;++i)
sum+=i;
cout<<"i="<<i<<" sum="
<<sum<<endl;
return 0;
}
B)#include <iostream>
using namespace std;
int main()
{
int i, sum;
i=1, sum=0;
for(;i<=10;)
sum+=i++;
cout<<"i="<<i<<" sum="
<<sum<<endl;
return 0;
}
C)#include <iostream>
using namespace std;
int main()
{
int i, sum;
i=1, sum=0;
for(; i<=10; ++i, sum=sum+i);
cout<<"i="<<i<<" sum="
<<sum<<endl;
return 0;
}
D)#include <iostream>
using namespace std;
int main()
{
int i, sum;
i=1, sum=0;
for(;i<11; sum=sum+i, ++i);
cout<<"i="<<i<<" sum="
<<sum<<endl;
return 0;
}
答案:C
解析:
20.[单选题]结构化程序的三种基本控制结构是( )。
A)顺序、选择和重复(循环)
B)过程、子程序和分程序
C)顺序、选择和调用
D)调用、返回和转移
答案:A
解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环)。答案选择A选项。
21.[单选题]设有说明语句:char a='\72'; 则变量a().
A)包含1 个字符
B)包含2 个字符
C)包含3 个字符
D)说明不合法
答案:A
解析:
22.[单选题]若有以下程序:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论