版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2/2C语言程序设计期末模拟考试一、理论基础(每小题1分,共10分)1、流程图中,输入/输出框用()图形表示? A、圆角矩形 B、平行四边形 C、矩形 D、菱形【答案】B2、下面不是c语言整形常数的是________。 A、02 B、0 C、038 D、0Xal【答案】C3、一个汉字的国标码需用2字节存储,其每个字节的最高二进制位的值分别为______。 A、00 B、10 C、01 D、11【答案】A4、下列属于c语言合法的字符常数是______。 A、’\97’ B、"A" C、’\t’ D、"\0\【答案】C【解析】C语言中字符常数是单引号括住的单个字符或转义字符,转义字符为“\”后跟一个特定字符或八进制或十六进制的整数。八进制数前面可以加0也可以不加0,十六进制前面只能加0x。所以本题中,首先可以排除选项B和选项D,由于选项A中,97不是一个正确的八进制数,也不是正确的十六进制数,而选项C是正确的字符常数,它代表的是字符制表符tab。5、在标准ascⅱ编码表中,数字码、小写英文字母和大写英文字母的前后次序是________。 A、数字、小写英文字母、大写英文亨母 B、小写英文字母、大写英文字母、数字 C、数字、大写英文字母、小写英文字母 D、大写英文字母、小写英文字母、数字【答案】C【解析】在标准ASCⅡ码表中,数字码、小写英文字母和大写英文字母的前后次序是:数字、大写英文字母、小写英文字母。6、以下选项中不正确的字符常量是________。 A、'1' B、'\0' C、'%d' D、'\\'【答案】C7、一个汉字的内码长度为2字节,其每个字节的最高二进制位的值分别为______。 A、0,0 B、1,1 C、1,0 D、0,1【答案】B【解析】汉字的内码=汉字的国标码+8080H,所以汉字内码的最高位为1。8、下列四个不同数制表示的数中,数值最大的是________。 A、二进制数11011101 B、八进制数334 C、十进制数219 D、十六进制数DA【答案】A【解析】化为十进制数,二进制数11011101=221;八进制数334=210;十进制数219;十六进制数DA=218。9、整型变量x=1,y=3,经下列计算后,x的值不等于6的是________。 A、x=(x=1+2,x*2) B、x=y>2?6:5P60条件运算符 C、x=9-(--y)P29 D、x=y*4/2【答案】C【解析】B选项y>2?6:5如果y>2,则表达式的值是6,并将值赋给变量x,x=6;否则表达式的值是5,并将值赋给变量x,x=5。C选项x=9-(--y)=7,--y为先自减1再参与运算,y--为先运算再自减1,例如x=9-(y--)=6(运算时y=3,运算结束y=2)10、下列标识符,不合法的是________。 A、abc B、_d C、123 D、e1【答案】C【解析】123不是合法的标识符,标识符不能以数字开头。11、设有定义:floata=2,b=4,h=3;,以下c语言表达式与代数式计算结果不相符的是________。 A、(a+b)*h/2 B、(1/2)*(a+b)*h C、(a+b)*h*1/2 D、h/2*(a+b)【答案】B12、59,73,83,94,() A、107 B、101 C、105 D、113【答案】A【解析】44+4+4=52,52+5+2=59,59+5+9=73,73+7+3=83,83+8+3=94,94+9+4=107,选A。13、下列条件语句中输出结果与其他语句不同的是________。 A、if(a)printf(“%d\n”,x);
elseprintf(“%d\n”,y); B、if(a==0)printf(“%d\n”,y);
elseprintf(“%d\n”,x); C、if(a!=0)printf(“%d\n”,x);
elseprintf(“%d\n”,y); D、if(a==0)printf(“%d\n”,x);
elseprintf(“%d\n”,y);【答案】D14、语句组intx;printf("%d",((x=4*5,x*5),x+25)); A、125 B、100 C、45 D、20【答案】C15、在c语言程序中可用做用户标识符的是________。 A、void
123
BBN B、aa
_abc
cas C、as+b3
-123
If D、6f
Do
SIG【答案】B16、表达式3!=3的值是________。 A、0 B、1 C、true D、false【答案】A17、十六进制数100转换为十进制数为 A、256 B、512 C、1024 D、64【答案】A【解析】把非十进制数转换为十进制可采用按权展开求和的方法,此题为:1X162+oxl61+0x160,计算得到256。18、以下不能作为合法常量的是________。 A、011 B、1e1 C、8.0E0.5 D、115【答案】C19、在c语言中,不正确的int类型的常数是______。 A、32768 B、0. C、037 D、0xAF【答案】A20、已有定义intk=2;
int*p1,*p2;
且p1,p2均指向变量k,下面不能正确执行的赋值语句是________。 A、k=*p1+*p2; B、p2=k; C、p1=p2; D、k=*p1*(*p2);【答案】B二、控制结构(每小题1分,共10分)1、下列表达式为关系表达式的为_________。(其中a为一整型变量) A、3+4*5 B、a==10 C、a>0a:-a D、a=1【答案】B2、在c语言中,if语句后的一对原括号中,用以决定分支的流程的表达式________。 A、只能用逻辑表达式 B、只能用关系表达式 C、只能用逻辑表达式或关系表达式 D、可用任意表达式【答案】D3、有以下程序
#include<stdio.h>
main()
{
inta=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
elseif((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}
执行后输出的结果是________。 A、2 B、3 C、4 D、编译时有错,无结果【答案】B【解析】第二个if语句中的表达式“c-1>=d”的值为逻辑值1,所以该条件成立。4、switch语句中表达式(expression)的值不允许用的类型是________。 A、byte B、int C、boolean D、char【答案】C【解析】switch语句用于多重选择,其参数可以是字节型、整型或字符型;而布尔型只有两个值(True、False),一般用于if语句。5、switch语句不能用于下列哪种数据类型() A、double B、byte C、short D、char【答案】A【解析】swish语句中表达式expression只能返回这几种类型的值:int、byte、short和char。如果比较的数据类型是double型,则不能使用switch结构。6、将三个数排序需要比较________次。 A、2 B、3 C、4 D、不确定【答案】B7、若inti=10;
执行下列程序后,变量i的正确结果是________。
switch(i)
{
case0:i+=1;
case10:i+=1;
case11:i+=1;
default:i+=1;
} A、10 B、11 C、12 D、13【答案】D8、执行以下程序段后,w的值为________。
intw='a',x=14,y=15;w=((x||y)&&(w<'a')); A、-1 B、NULL C、1 D、0【答案】C【解析】字符变量w的初值为字符'A',其ASCII码值为65,字符'a'的ASCII码值为97,所以关系表达式w<'a'的值为1;变量x=14,变量y=15,x||y为或,x、y均为真,所以x||y的结果1。因而逻辑表达式(x||y)&&(w<'a')的值为1。9、以下程序的输出结果是
main()
{
inta=0,i;
for(i=;i<5;i++)
{
switch(i)
{
case0:case3:a+=2;
case1:case2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
} A、31 B、13 C、10 D、20【答案】A10、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三、循环结构(每小题1分,共10分)1、有以下程序
main()
{
intk=4,n=0;
for(;n<k;)
{
n++;
if(n%3!=0)continue;
k--;
}
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是________。 A、1,1 B、2,2 C、3,3 D、4,4【答案】C2、以下程序中,while循环的循环次数是______。
main()
{
inti=0;
while(i<10)
{
if(i<1)continue;
if(i==5)break;
i++;
}
} A、1 B、10 C、6 D、死循环【答案】D3、有以下程序:
main()
{
ints=0.n;
for(n=0;n<3;n++)
{
switch(s)
{
case0;
case1:s+=1;
case2:s+=2;
break;
case3:s+=3;
default:s+=4;
}
printf("%d,"s);
}
}
程序运行后的输出结果是________。 A、1,2,4, B、1,3,6, C、3,10,14, D、3,6,10,【答案】C4、有如下程序
#include<stdio.h>
voidmain()
{
intx=23;
do
{
printf("%d",x--);
}
while(!x);
}
该程序的执行结果是_________。 A、321 B、23 C、不输出任何内容 D、陷入死循环【答案】B5、若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是________。 A、for(i=1,p=1;i<=5;i++)p*=i; B、for(i=1;i<=5;i++){p=1;p*=i;} C、i=1;p=1;while(i<=5){p*=i;i++}; D、i=1;p=1;do{p*=i;i++;}while(1<=5)【答案】B【解析】选项B中for循环了5次,而每次循环的时候,都将p的值重新赋值为1后,再乘以当前数字i,最后的结果为5,显然不是5!的值,同样的分析可知选项A、选项C和选项D计算的都是5!。所以,4个选项中选项B符合题意。6、以下for语句中不是死循环的是________。 A、for(inti=0;i<1;i++); B、for(inti=0;i++); C、for(inti=1;i>0;++i); D、for(;;);【答案】A【解析】考查循环语句for的使用。
[解题要点]for循环的一般格式为for(初始化部分;终止条件判断部分;迭代部分){循环体;}说明如下:for循环开始时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。
[错解分析]在for语句中,如果省略了终止条件判断部分,开且在语句中没有break,或者是终止条件判断部分始终没有终止,都将出现死循环。
[考点链接]for循环语句可由while循环语句来代替。7、下列语句中执行跳转功能的语句是________。 A、for语句 B、while语句 C、continue语句 D、switch语句【答案】C【解析】for语句和while语句都是循环控制语句;switch语句是多分支语句;选项C的continue语句是跳转语句,continue语句跳过循环体中下面尚未执行的语句,回到循环体的开始继续下一轮的循环。8、下面程序的运行结果是________。
main()
{
intm=7,n=5,i=1;
do
{
if(i%m==0);
if(i%n==0)
{
printf("%d\n",i);
break;
}
i++;
}
while(i!=0);
} A、7 B、6 C、5 D、4【答案】C9、定义如下变量:intn=10;则下列循环的输出结果是________。
while(n>7)
{
n--;
printf("%d\n",n);
} A、10
9
8 B、9
8
7 C、10
9
8
7 D、9
8
7
6【答案】B10、下列语句中,可以作为无限循环语句的是________。 A、for(;;) B、for(inti=0;i<10000;i++) C、while(false) D、do)while(false)【答案】A【解析】B的循环终止条件为10000,CD的终止条件为常量false,都不能无限循环。四、数组/指针数组(每小题1分,共10分)1、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#defineN10
voidarrin(intx[N])
{
inti=0;
while(i<N)scanf("%d",______);
}
在下划线处应填入的是______。 A、x+i B、&x[i+1] C、&x[i++] D、&x[++i]【答案】C2、在c语言中,引用数组元素时,其数组下标的数据类型允许是________。 A、整型表达式 B、整型常量 C、整型常量或整型表达式 D、任何类型的表达式【答案】C【解析】在C语言中,引用数组元素时,其数组下标的数据类型可以是整型常量,也可以是整型表达式。3、下列一维数组初始化语句中,正确且与语句floata[]={0,3,8,0,9};等价的是__________. A、floata[6]={
0,3,8,0,9}; B、floata[4]={
0,3,8,0,9}; C、floata[7]={
0,3,8,0,9}; D、floata[5]={
0,3,8,0,9};【答案】D4、数组inta[3][4];其中错误的数组引用为________。 A、a[0][0] B、a[1][3] C、a[3][3] D、a[0]【答案】C5、若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素的引用不正确的是________。 A、a[p-a] B、*(&a[i]) C、p[i] D、*(*(a十i))【答案】D6、以下语句或语句组中,能正确进行字符串赋值的是________。 A、char*sp;*sp="right!"; B、chars[10];s="right!"; C、chars[10];*s="right!"; D、char*sp="right!";【答案】D【解析】本题考查了考生对字符串常量的理解。字符串常量是一段以双引号括起来的字符序列,它既可以出现在对字符数组的初始化中,也可以出现在表达式中。当它用于对字符数组的初始化时,应注意系统自动为其添加的结束标志'\0'。而当它出现在表达式中时,应该将其看作一个constchar*类型的指针常量。在选项A中,首先定义了一个字符指针sp,然后将一个字符串赋给甲所指的地址,这是错误的。因为sp是一个未经初始化的野指针,不知其指向哪儿,往一个不确定的地址中写数据很容易让程序出错。选项B首先定义了一个字符数组,然后将一个字符串赋给数组名,这是错误的。因为数组名是一个指针常量,不可以被改变。选项C首先定义了一个字符数组,然后将一个字符串赋给数组的第一个元素,这也是错误的。因为字符串在表达式中相当于一个常字符指针,将一个指针值赋给一个字符型变量是行不通的。选项D是定义一个字符指针sp,同时使其指向一个字符串常量,即将一个常字符型指针赋给sp。这是可行的。所以,4个选项中选项D符合惠意。7、以下叙述中正确的是________。 A、语句inta[8]={0};是合法的 B、语句inta={0};是不合法的,遗漏了数组的大小 C、语句chara[2]={"A","B"};是合法的,定义了一个包含两个字符的数组 D、语句char[3];a="AB";是合法的,因为数组有三个字符空间的容量,可以保存两个字符【答案】A【解析】B选项中,如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数;C选项中,char2={
ab不合法,应为char【2】={
a,"}选项中,用字符串方式赋值比用字符逐个赋值要多占1个字节,在该选项中应为3个字节。因此A选项正确。8、数组a[1..5,1..6]的每个元素占5个单元,将其按行优先顺序存储在起始地址为1000的连续的内存单元中,则元素a[5,5]的地址为(15)。 A、1140 B、1145 C、1120 D、1125【答案】A【解析】注意是按行优先顺序存储。9、若有定义:inta[4][10];则以下选项中对数组元素a[i][j]引用错误的是______。(0<=i<4,0<=j<10) A、*(&a[0][0]+10*i+j) B、*(a+i)+j C、*(*(a+i)+j) D、*(a[i]+【答案】B【解析】本题中选项B是错误的引用,*(a+i)+j只代表了a[i][j]的地址。10、设有如下定义:char*aa[2]="abcd","abcd",则以下说法中正确的是________。 A、aa数组中元素的值分别是"abcd","ABCD"; B、aa是指针变量,它指向含有两个数组元素的字符型一维数组 C、aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D、aa数组的两个元素中各自存放了字符‘a’和‘A’的地址【答案】C【解析】aa数组被定义为字符型指针数组,有两个元素,分别存放字符串"abcd"和"ABCD"的首地址。五、字符串/字符串指针(每小题1分,共10分)1、以下选项中能表示合法常量的是________。 A、整数:1,200 B、实数:1.5E2.0 C、字符斜杠:"\" D、字符串:"\007"【答案】D2、下列选项中,表示字符串末尾的结束标志是________。 A、'\n' B、'\r' C、'\0' D、NULL【答案】C【解析】字符串末尾结束标志为'\0'3、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。while((ch=getchar())!='e')printf("*"); A、5 B、4 C、6 D、1【答案】B4、下面选项中合法的字符常量是________。 A、"X" B、'X' C、'abc' D、'\'【答案】B【解析】字符常量是用单引号括起来的一个字符。A选项中,使用双引号,所以是错误的;C选项中,abc是字符串,字符常量只能是单个字符,不能是字符串;D选项中,以反斜线"开头的是转义字符。因此B选项正确。5、下列字符常量的写法中,正确的是________。 A、'abc' B、'\5A' C、A D、'\73'【答案】D【解析】选项A不是一个字符常量,因为C++基本数据类型中不存在与其相对应的类型,如果将起止符号改为双引号,它就是一个字符串类型的常量。选项B中缺少开始标记字母x。选项C中的字符A没有用单引号括起来,只能看成一个标识符。6、宏定义是最常用的预处理功能之一,它用于将一个标识符定义为一个______ A、单精度数 B、双精度数 C、常量 D、字符串【答案】D【解析】宏定义是最常用的预处理功能之一,它用于将一个标识符定义为一个字符串。这样,在源程序被编译器处理之前,预处理器会将标识符替换成所定义的字符串。7、以下能正确定义字符串的语句是________。 A、charstr[]={′\064′}; B、charstr="kx43"; C、charstr="; D、charstr[]="\0";【答案】D8、下列字符串中可以用作c标识符的是________。 A、2009var B、goto C、test-2009 D、-123【答案】D【解析】在C中,变量标识符必须以大小写字母或下画线开始,是由数字或者字母下画线等组成的一个字符串,其中C++关键字不能作为标识符,不能包含-、+、*、/等运算符号。C++变量区分大小写。9、下面描述正确的是________。 A、两个字符串包含的字符个数相同时,才能比较字符串 B、字符个数多的字符串比字符个数少的字符串大 C、字符串"STOP"与"STOP■"相等 D、字符串"That"小于字符串"The"【答案】D10、下列关于串的叙述中,哪一条是正确的() A、串是由至少1个字符组成的有限序列 B、串中字符的数目就是串的长度 C、空串就是由空格构成的串 D、串只能顺序存储【答案】B【解析】串(或字符串)是由零个或多个字符组成的有限序列,零个字符的串是空串,串中字符的数目就是串的长度,串的存储方式有顺序存储和链式存储两种。串的基本运算有连接、赋值、求长度、全等比较、求子串、找子串位置以及替换等。六、函数/函数指针(每小题1分,共10分)1、假设有语句sizeof(double),则它是________。 A、一个整型表达式 B、一个双精度浮点型表达式 C、一种函数调用 D、一种函数定义【答案】A【解析】sizeof(double)是C语言内部规定的一个计算参数(double)在计算机的内存中所占用的字节数量的函数,它返回一个整数值。2、c语言允许函数值类型缺省定义,此时该函数值隐含的类型是________. A、float B、int C、long D、double【答案】B3、以下正确的函数定义形式是________. A、doublefun(intx,inty) B、doublefun(intx;inty) C、doublefun(intx,inty); D、doublefun(intx,y);【答案】C4、结构化程序设计的三种基本逻辑结构是________。 A、选择结构,循环结构和嵌套结构 B、顺序结构,选择结构和循环结构 C、选择结构,循环结构和模块结构 D、循环结构,递归结构和循环结构【答案】B5、下列关于strstr()函数的描述,错误的是________。 A、用于在指定的字符串中查找指定的字符 B、用于在指定的字符串中查找指定的子字符串 C、该函数接收两个字符指针类型的参数 D、该函数若查找到子字符串则返回子字符串的指针,否则返回空指针【答案】A【解析】用于在指定的字符串中查找指定的子字符串6、在printf的格式字符中,e格式字符的作用是________。 A、以十六进制无符号形式输出整数 B、以带符号的十进制形式输出整数 C、以指数形式输出实数 D、以字符形式输出,且只输出一个字符【答案】C【解析】本题考查printf。函数的格式。格式字符“e”或者“E”都表示以指数形式输出单精度或双精度数。7、设函数fun的定义形式为________。
voidfun(charch,floatx)
{
…
}
则以下对函数fun的调用语句中,正确的是________。 A、fun("abc",3.0); B、t=fun('D',16.5); C、fun('65',2.8); D、fun(32,32);【答案】D8、用户定义的函数不可以调用的函数是()。 A、非整型返回值的 B、本文件外的 C、main函数 D、本函数下面定义的【答案】C9、c语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为________。 A、void B、double C、int D、char【答案】C10、在函数调用过程中,如果函数funa调用了函数funb,函数funb又调用了函数funa,则________。 A、称为函数的直接递归调用 B、称为函数的间接递归调用 C、称为函数的循环调用 D、C语言中不允许这样的递归调用【答案】B【解析】在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。本题描述的函数调用属于函数的间接递归调用。七、指针(每小题1分,共10分)1、下面关于编译预处理命令,正确的是________。 A、#definecharCHAR B、#DefineE0.0000034 C、##defineFALSE0 D、#defineDIM26【答案】D【解析】无参宏定义的一般格式:#define标识符语言符号字符串,其中:“define”为宏定义命令;“标识符为所定义的宏名,通常用大写字母表示,以便于与变量区别;“语言符号字符串”可以是常数、表达式、格式串(格式串是用双引号括起来的字符串)等,选项ABC错误,选项D正确;本题答案为D。2、以下与库函数strcmp(char*s,char*t)的功能相等的程序段是________。 A、strcmp1(char*s,char*t){
for(;*s++==*t++;)
If(*s=='\0')
return0;
return(*s-*t);
} B、strcmp2(char*s,char*t){
for(;*s++==*t++;)
If(!*s)return0;
return(*s-*t);
} C、strcmp3(char*s,char*t){
for(;*t==*s;){
if(!*t)
return0;
t++;
s++;
}
return(*s-*t);
} D、strcmp4(char*s,char*t){
for(;*s==*t;s++,t++)
If(!*s)return0;
return(*t-*s);
}【答案】C3、设有如下定义:charaa[2][20]={"abcd","abcd"};则以下说法中错误的是__________. A、aa是个二维数组,可以存放2个19个字符以下的字符串 B、aa是个二维数组,每行中分别存放了字符串"abcd"和"ABCD" C、aa[0]可以看作是一维数组名 D、aa[0][0]可以看作是一维数组名【答案】D4、下列说法正确的是________。 A、main函数必须放在C程序的最后面 B、main函数必须放在C程序的最前面 C、main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的 D、main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的【答案】D【解析】每个C程序有且只有一个主函数(main),且程序必须从main()函数开始执行。别外main()函数可以放在程序中的任意位置。5、程序中对fun函数有如下说明void*fun();此说明的含义是________。 A、fun函数无返回值 B、fun函数的返回值可以是任意的数据类型 C、fun函数的返回值是无值型的指针类型 D、指针fun指向一个函数、该函数无返回值【答案】C【解析】指针函数是指其返回值的类型为地址即指针类型。本题中定义了一个指针类型的函数。6、若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是________。 A、a,point,*&a B、&*a,&a,*point C、*&point,*point,&a D、&a,&*point,point【答案】D【解析】对于运算符“&”和“*”的运用。
[解题要点]“&”是求址运算符,“*”是指针变量的说明符,说明该变量只能存放所定义类型变量的地址。本题中选项D)中的第一项和第三项所表达的是同样的意思。
[错解分析]选项A)中a是一个整型变量。选项B)中&*a等价于a,*point是指针变量所指的内容。选项C)中也是同理。
[考点链接]在指针运算中,&和*的作用相互抵消。7、对于int*pa[5];的描述,以下哪个选项是正确的 A、pa是一个指向数组的指针,所指向的数组是五个int类型的指针 B、pa是一个具有五个元素的指针数组,每个元素都是一个int类型的指针 C、pa[5]表示某个数的第五个元素的值 D、pa是一个指向某个数组中第五个元素的指针,该元素是int类型的变量【答案】B8、若使用一位数组名作为函数实参,则以下正确的说法是________。 A、必须在主调函数中说明此数组的大小 B、实参数组类型与形参数组类型可以不匹配 C、在被调函数中,不需要考虑形参数组的大小 D、实参数组名与形参数组名必须一致【答案】C9、下列变量定义中,错误的是______。 A、intx=3; B、floatf;d; C、Strings="Hello!"; D、booleanb=true;【答案】B【解析】A选项定义了一个整型;C选项定义了一个字符串;D选项定义了一个布尔型变量:B选项中的f;d不符合标识符规范,因而选B。10、有如下语句:s=int(100*rnd)执行完毕后,s的值是________。 A、[0,99]的随机整数 B、[0,100]的随机整数 C、[1,99]的随机整数 D、[1,100]的随机整数【答案】A【解析】Rnd是一个随机数函数,其返回值是(0,1)内的数。Int(100*Rnd)对100*Rnd的结果取整,得到的是[0,99]内的随机整数。八、结构体(每小题1分,共10分)1、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是
structnodechardata;
structnode*next;
a,b,*p=&a,*q=&b; A、next=q; B、next=&b; C、p->next=&b; D、(*p).next=q;【答案】B【解析】要把结点b连接到结点a之后,必须把b的地址给a的next指针,选项A中,指针变量q保存的就是变量b的地址,选项B中的p是指针变量,应该是p->next=&b;在选项D中,用*运算符取出结构体变量,并且保存的就是b的地址,所以正确。2、有以下程序
structstu
{
charname[10];
intnum;
};
voidf(char*name,intnum)
{
structstus[2]={{"sundan",20044},{"penghua",20045}};
num=s[0].num;
strcpy(name,s[0].name);
}
main()
{
structstus[2]={{"yangsan",20041},{"lisiguo",20042}},*p;
p=&s[1];
f(p->name,p->num);
printf("%s%d\n",p->name,p->num);
}
程序运行后的输出结果是________。 A、SunDan20042 B、SunDan20044 C、LiSiGuo20042 D、YangSan20041【答案】A3、下面定义结构变量的语句中错误的是________。 A、structstudent{
intnum;charname[20];
}s; B、struct{
intnum;charname[20];
}s; C、structstudent{
intnum;charname[20];
};
structstudents; D、structstudent{
intnum;charname[20];
};
students;【答案】D4、下面程序的输出是______。
main()
{
structcmplx
{
intx;
inty;
}
cnum[2]={1,3,2,7};
printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);
} A、0 B、1 C、3 D、6【答案】D5、在说明一个结构体变量时系统分配给它的存储空间是________。 A、该结构体中第一个成员所需存储空间 B、该结构体中最后一个成员所需存储空间 C、该结构体中占用最大存储空间的成员所需存储空间 D、该结构体中所有成员所需存储空间的总和【答案】D6、有以下程序
structstu
{
intnum;
floattotalscore;
};
voidf(structstup)
{
structstus[2]={{20044,550},{20045,537}};
p.num=s[1].num;
p.totalscore=s[1].totalscore;
}
main()
{
structstus[2]={{20041,703},{20042,580}};
f(s[0]);
printf("%d%3.0f\n",s[0].num,s[0].totalscore);
}
程序运行后的输出结果是________。 A、20045537 B、20044550 C、20042580 D、20041703【答案】D7、有以下程序
#include<stdio.h>
main()
{
structstu
{
charname[9];
charsex;
doublescore[2];
}
;
structstua={"zhao",'m',85.0,90.0},b={"qian",'f',95.0,92.0};
b=a;
printf("%s,%c,%2.0f,%2.0f\n",,b.sex,b.score[0],b.score[1]);
}
程序的运行结果是______。 A、Qian,f,95,92 B、Qian,m,85,90 C、Zhao,f,95,92 D、Zhao,m,85,90【答案】D8、下面关于主程序的说法,错误的是________。 A、a.next=q; B、p.next=&b; C、p->next=&b; D、(*p).next=q;【答案】B【解析】要把结点b连接到结点a之后,必须把b的地址给a的next指针,选项A)中,指针变量q保存的就是变量b的地址,选项B)中的p是指针变量,应该是p->next=&b;在选项D)中,用*运算符取出结构体变量,并且保存的就是b的地址,所以正确。9、有以下结构体说明和变量的定义,且指针p指向变量a’指针q指向变量b,则不能把结点b连接到结点a之后的语句是________。
structnode
{
chardata;
structnode*next;
}
a,b,*p=&a,*q=&b; A、a.next=q; B、P.next=&b: C、p—>next=&b; D、(*p).next=q;【答案】B10、若有以下说明语句:
structdate
{
intyear;
intmonth;
intday;
}brithday;
则下面的叙述不正确的是_____. A、struct是声明结构体类型时用的关键字 B、structdate是用户定义的结构体类型名 C、brithday是用户定义的结构体类型名 D、year,day都是结构体成员名【答案】C九、程序题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川酒业茶业投资集团有限公司2026年公开选聘下属企业高管的备考题库附答案详解
- 2026年漯河市城市管理局人才引进备考题库完整参考答案详解
- 2026年来宾市合山生态环境局招聘备考题库含答案详解
- 东南大学附属中大医院2026年招聘备考题库及参考答案详解
- 中共屏山县委办公室关于2025年第二次公开招聘编外聘用人员的备考题库及一套答案详解
- 会议会务筹备与场地布置制度
- 2026年浙江大学国际教育学院招聘备考题库附答案详解
- 大冶公安2026年招聘纪委监委留置场所看护人员备考题库及答案详解1套
- 2026年黑龙江工商学院招聘备考题库及参考答案详解一套
- 中学学生社团活动交流合作制度
- 2025北京陈经纶中学高一9月月考物理(贯通班)试题含答案
- 中国铝矿行业现状分析报告
- 物业人员消防安全培训课件
- 2025年大学大四(预防医学)环境卫生学阶段测试试题及答案
- 产房护士长年度工作业绩总结与展望
- 2025海康威视安检机用户手册
- 学堂在线 雨课堂 学堂云 智能时代下的创新创业实践 期末考试答案
- 移动电源规格书
- 七年级下册数学期末考试试卷共十套
- 餐饮部物品清单
- 康柏西普或雷珠单抗治疗近视性脉络膜新生血管疗效及注射次数比较
评论
0/150
提交评论