高级语言程序的设计练习题42.docx
《高级语言程序的设计练习题42.docx》由会员分享,可在线阅读,更多相关《高级语言程序的设计练习题42.docx(24页珍藏版)》请在冰豆网上搜索。
高级语言程序的设计练习题42
(一)填空题:
1.C语言程序的基本单位是—函数_。
2.在C语言中,数字056是一个八进制数,OxFF是一个十六_
进制数。
3.
若程序中使用了函数
scanf(),
则必须包含的头文件名为
stdio.h
。
4.
strlen()
,则必须包含的头文件名为
string.h
5.
C语言程序的三种基本结构是
循环、
顺序
、
选择
6.若程序中使用了函数sqrt(),则必须包含的头文件名为
math.h。
7.C语言中运算对象必须是整型的运算符是%。
&C语言中整型数据除以整型数据得到整形数据。
9.C语言源程序文件的扩展名是.c;经过编译后,所生成文件的扩展名
是;经过后,所生成的文件扩展名是.exe。
10.若定义inta[3][5];贝Ua数组所含数组元数个数是15,sizeof(a)的
值是4,其首地址是a[0][0]。
11•在C语言中,数组名是数组的,同时它是一个_指针_常量。
12.判断字符型变量ch是否为小写英文字母的C语言表达式为
13.判断变量a的数值围Kaw10的C语言表达式是a>=1&&a<=10
14.C语言运算符中,++和--的结合方向(运算方向)是从右向左
函数读入字符串。
16•函数直接或间接地调用自己本身称为
17.已知w=1,x=2,y=3,z=3,a=4,b=2;
4_,b的值为_2。
18.字符串"student"的长度是8,它在存中的字节数为。
19.设a、b、c为整型数,且a=2,b=3,c=4,则执行语句"a*=16+(b++)-(++c);"后,a的
值是28。
20.执行intx,y,z;x=y=1;z=(x++,++y,y++);后,
贝Hx=1,y=3,z=3。
21.定义语句intx,y;,执行y=(x=1,++x,x+2);语句后,则x=2,y=
22.
o
0,应选择的存
执行下列语句inta=2;a+=a-=a*a;后,a的值是0
23.设函数外有整型变量n,为保证其在未赋值的情况下初值为
储类另寸是。
24.有以下程序(注:
字符a的ASCII码值为97)
#inelude
intmain()
{char*s="abc";
do
{printf("%d",*s%10);
++s;
}while(*s);
return0;
}
程序运行后的输出结果是。
25.以下程序运行后的输出结果是。
#include
intfun(intx)
{intp;
if(x==0||x==1)
return(3);
p=x-fun(x-2);
returnp;
{printf("%d\n",fun(9));
26.有以下程序:
intmain(){inta,b=0;
for(a=0;a++<=2;);
b+=a;
printf("%d,%d\n",a,b);
27.以下程序运行后的输出结果是。
{inti,j,row,column,m;
intarray[3][3]={{100,200,300},{28,72,-30},{-850,2,-26}};
m=array[0][0];
for(i=1;i<3;i++)
for(j=0;j<3;j++)
if(array[i][j]{m=array[i][j];row=i;column=j;}printf("%d,%d,%d\n”,m,row,column);return0;}28.对于以下宏定义:#defineM1+2#defineN2*M+1执行语句"x=N;”之后,x的值是。29.对于以下宏定义:#defineM(x)x*x#defineN(x,y)M(x)+M(y)执行语句z=N(2,2+3);后,z的值是。30.已知老师记录描述为structteather{intid;struct{inty;intm;intd;}birth;}t;将变量t中的d成员赋值为12的语句为31•下面语句中的指针s所指字符串的长度是。char*s="\t\"Name\\Addres\n"32.使用fopen("abc.txt","w+”打开文件时,如abc.txt文件不存在,则。33.C语言中,根据数据的存放形式,文件可以分为_____________文件和文件。34.C语言中,文件的格式化输入输出函数对是和___________。35.C语言中用_________函数打开文件,用__—函数关闭文件。36.下面程序给一维数组输入数据,找出下标为偶数的元素的最小值并输出。#includeintmain(){inta[10],min,i;for(i=0;i<10;i++)min=a[0];for(i=2;i<10;i=i+2)if()min=a[i];printf("%d",min);return0;}37.下面程序是用递归函数实现求两个整数的最大公约数,主函数读入待求的两个整数并调用公约数函数求解,输出结果。请在横线上填入相应的语句以使程序完整。#includeintGcd(intm,intn){intr;r=m%n;if()returnn;return;}intmain(){intm,n;scanf("%d%d",&m,&n);printf("Gcdofmandnis:%d\n",);return0;}(二)选择题:1第一个结构化程序设计语言是A)D)FortranPascalB)CC)BasicB)以下哪一种程序设计语言是目前最受欢迎的编程语言之一2. 15.执行语句a=4*5,a*2,a+15;后a的值是。A)35B)40C)55D)2016.C语言程序的三种基本结构是。A)顺序结构,选择结构,循环结构B)递归结构,循环结构,转移结构C)嵌套结构,循环结构,顺序结构D)递归结构,选择结构,顺序结构17.以下选项中不属于字符常量的是__。A)'C'B)'\072'C)'\xCC'D)"C"18.设a为int型变量,分别执行下列赋值语句后,a所获得的值分别是。a=125.534;a=20.0/3;a=(int)125.521%4;A)125,6,31B)125,6,1C)125,7,1D)125.534,6.666666,1.52119.若已定义x和y为double类型变量,则表达式“x=1,y=x+3/2”的值是。A)1B)2C)2.0D)2.520.以下选项中不属于字符常量的是。A)"s"B)'\117'C)'\x86'D)'a'21.以下选项中,不是C语句的是。A)a+=b;B);C){x++;++y;}D)printf(“%d”,a)22.以下非法的赋值语句是。A)n=(i=2,++i);B)j++;C)++(i+1);D)x=j>0;23.已知w=1,x=2,y=3,z=3,a=4,b=2;则执行语句(a=w>x)&&(b=y>z);后,a,b的值为。A)1和1B)0和0C)4和2D)0和224.设有语句:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是。A)2.5B)2.75C)2.0D)0.025.执行语句a=4*5,a*2,a+15;后a的值是。A)35B)40C)55D)2026.阅读程序:#include"stdio.h"intmain(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f",a,b,c);return0;}若运行时从键盘上输入9876543210(0表示回车),则程序的输出结果。A)a=98,b=765,c=4321B)a=98,b=765.000000,c=4321.000000C)a=98,b=765.0,c=4321.0D)a=98.0,b=765.0,c=4321.027.下列四种数组定义中,合法的数组定义是—。A)chara[]="hello";B)inta[4]={4,3,2,1,0};C)chara="hello";D)chara[5]="hello";28.下列循环不是无限循环。A)for(y=0;x=1;++y);B)for(;;x=0);C)while(x=1){x=1;}D)for(y=1,x=1;x>=++y;x++);29.以下叙述正确的是。A)do…while语句构成的循环不能用其他语句构成的循环来代替B)do…while语句构成的循环只能用break语句退出C)用do…while语句构成的循环,在while后的表达式为非零时结束循环D)用do…while语句构成的循环,在while后的表达式为零时结束循环30.下面的表达式中值为0的是。A)5%7B)5/7.0C)5/7D)5*731.设intk;则语句for(k=0;k=1;k++);和语句for(k=0;k==1;k++);执行的次数分别是。A)无限和0B)0和无限C)都是无限D)都是032.下列循环不是无限循环。A)for(y=0;x=1;++y);B)for(;;x=0);C)while(x=1){x=1;}D)for(y=1,x=1;x>=++y;x++);33.有变量定义如下:doublenum;,要使得num的值为3.14159,正确的输入语句是A)scanf("%lf",num);B)scanf("%lf",&num);C)scanf("%d",&num);D)scanf("%f",&num);34.设charx[]="abcde",y[]={'a','b','c','d','e'};那么。A)x数组的长度大于y数组的长度B)x数组的长度等于y数组的长度C)x数组的长度小于y数组的长度D)x数组与y数组的存储区域相同35.下面不正确的字符串赋值或赋初值方式是。A)char*str;str="string";B)charstr[7]={'s','t','r','i','n','g'};C)charstr1[10];strl="string";D)charstr1[]="string",str2[20];strcpy(str2,str1);36.定义如下变量和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是。for(i=0;i<3;i++)printf("%d",x[i][2-i]);A)159B)147C)357D)36937.假设已定义chara[10];char*p;那么下面语句正确的是。A)p=a;B)a="abcdef:C)*p="abcdef"D)p=*a;38.若有说明:inta[]={15,12,-9,28,5,3},*p=a;;则下列表达式是错误的。41.下列编译预处理指令中,不正确的是__A)#defineM3B)#include"stdio.h"C)#includeD)#definePl=3.1415942.宏定义#includeG9.8中的宏名G表示。A)一个单精度实数B)一个双精度实数C)一个字符串D)不确定类型的数43.设inta=9,b=20;则printf("%d,%d\n",a--,--b);的输出结果.A)9,19B)9,20C)10,19D)10,2044.以下关于switch语句和break语句的描述正确的是。A)在switch语句中必须使用break语句B)break语句只能用于switch语句体中C)break语句只能用于循环语句中D)在switch语句中可以不使用break语句45.下面关于函数的理解,不正确的是A)函数可以嵌套定义B)函数可以嵌套调用C)函数可以没有形式参数D)函数可以有多个形式参数46.以下叙述中正确的是。A)全局变量的作用域一定比局部变量的作用域围大B)静态(static)存储变量的生存期贯穿于整个程序的运行期间C)函数的形参都属于全局变量D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值47.若有定义inta[2][3],对元素a[i][j]地址的不正确引用是__A)a[i]+j;B)*a+i*3+j;C)(a+i)+j;D)*(a+i)+j;48.若有以下语句:inta[3][2]={1,2,3,4,5,6,},*p[3];p[0]=a[1];则*(p[0]+1)所代表的数组元素是。A)a[0][1]B)a[1][0]C)a[1][1]D)a[1][2]49.下列对指针p的操作,正确的是。A)int*p;*p=2;B)inta[5]={1,2,3,4,5},*p=&a;*p=5;C)inta,*p=&a;D)floata[5];int*p=&a;50.对于C程序的函数,下列叙述中正确的是__。A)函数的定义不能嵌套,但函数调用可以嵌套B)函数的定义可以嵌套,但函数调用不能嵌套C)函数的定义和调用均可以嵌套D)函数的定义和调用均不能嵌套51.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参52.函数的返回值类型由__决定。A)return后的表达式B)定义函数时指定的返回值类型C)调用函数时临时决定D)主调用函数的类型53.以下不能对二维数组a进行正确初始化的语句是B)A)inta[2][3]={0};inta[][3]={{1,2},{0}};C)inta[2][3]={{1,2},{3,4},{5,6}};D)inta[][3]={1,2,3,4,5,6};54.下面对一维数组a进行正确初始化的语句是。A)inta[5]={1,2};B)inta[2]={1,2,3,4,5};C)inta[5]={,,1,2};D)inta{5}={1,2,3,4,5};55.若函数定义时不指明函数的类型,则其默认的返回值类型是A)voidB)任意类型C)intD)double56.下面对一维数组定义错误的是_^_^_。A)inta[]={1,2,3,4};B)chara[5];C)chara[6]="test";D)intn=5,a[n];57.以下选项中正确的语句组是__。A)chars[];s="BOOK!";B)char*s;s={"BOOK!"};C)chars[10];s="BOOK!";D)char*s;s="BOOK!";58.若有下面的说明和定义:structtest{intm1;charm2;floatm3;unionuu{charu1[5];intu2[2];}ua;};则在VC+孫统中sizeof(structtest)的值是A)9B)12C)13D)1459.有如下定义:structexam{intx,y;}v1;则—是正确的引用或定义。A)exam.x=10;B)examv2;v2.x=10;C)structv2;v2.x=10;D)structexamv2={10};60.0,应选择的存储类别是设函数外有整型变量n,为保证其在未赋值的情况下初值为 A)staticB)registerC)autoD)externA)scanf()B)gets()C)getchar()D)getc()62.设函数中有整型变量n,为保证其在未赋值的情况卜初值为0,应选择的存储类别是。A)autoB)registerC)staticD)extern(三)判断题:1.在while循环中允许使用嵌套循环,但只能嵌套while循环。2.在for循环中允许使用嵌套循环,但只能嵌套for循环。3.while、do-while、for循环中的循环体语句都至少被执行一次。4.一个C语言源程序文件中可以有多个main函数。5.C程序中的else总是与在其之前未配对的最近的if组成配对关系。6.switch语句的case表达式必须是常量表达式。7.switch语句中必须要有default语句。&自增运算符什+)或自减运算符(--)只能用于变量,不能用于常量或表达式。9.函数的形式参数是局部变量。10.访问数组元素时其下标必须是常量,不允许是表达式。11.数组的元素作为函数的实参时采用的参数传递方式是地址传递。12.C语言规定只能引用数组元素而不能一次引用整个数组。13.定义int**p;,则二级指针变量p存放的是指针变量的地址。14.定义int*p[4];,则标识符p是一个指针,指向一个含有4个整型元素的一维数组。15.定义int(*p)[4];,则标识符p是一个指针,指向一个含有4个整型元素的一维数组。16.函数不能嵌套定义但可以嵌套调用。17.求余符号%两边必须是整型数据。18.函数不能嵌套定义但可以嵌套调用。19.数组的名称作为函数的实参时采用的参数传递方式是地址传递。20.条件编译只能在调试程序时使用。21.一个函数利用return可以返回多个函数值。22.联合变量的所有成员共享同一段存空间,其占用的存是所需存最大的那个成员的空间。23.用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。24.结构体变量的所有成员共享同一段存空间,其占用的存是所需存最大的那个成员的空间。(四)读程序题:1.#includeintmain(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++,b++;}printf("a=%d,b=%d\n",a,b);return0;}2.#includeintmain(){inta=1,b=2;for(;a<8;a++){a+=2;if(a==6)continue;if(a>7)break;b++;}printf("%d,%d\n",a,b);return0;}3.#includevoidfunc(intb[]){intj;for(j=0;j<4;j++)b[j]=2*j;}intmain(){inta[]={5,6,7,8},i;func(a);for(i=0;i<4;i++){printf("%d,",a[i]);}return0;}4.#include"stdio.h"intmain(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);return0;}5.#includeintmain(){inta=0,b=3,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}printf("m=%d\n",m);return0;}6.#includeinta(intx){staticinty=1;y=y*x;returny;}intmain(){inti;for(i=1;i<=5;i++)printf("%d\n",a(i));return0;}7.#includestaticinta=5;voidp1(){p
{m=array[i][j];row=i;column=j;}
printf("%d,%d,%d\n”,m,row,column);return0;
28.对于以下宏定义:
#defineM1+2
#defineN2*M+1
执行语句"x=N;”之后,x的值是。
29.对于以下宏定义:
#defineM(x)x*x
#defineN(x,y)M(x)+M(y)
执行语句z=N(2,2+3);后,z的值是。
30.已知老师记录描述为
structteather
{intid;
struct{inty;intm;intd;}birth;
}t;
将变量t中的d成员赋值为12的语句为
31•下面语句中的指针s所指字符串的长度是。
char*s="\t\"Name\\Addres\n"
32.使用fopen("abc.txt","w+”打开文件时,如abc.txt文件不存在,则
33.C语言中,根据数据的存放形式,文件可以分为_____________文件和文
件。
34.C语言中,文件的格式化输入输出函数对是和___________。
35.C语言中用_________函数打开文件,用__—函数关闭文件。
36.下面程序给一维数组输入数据,找出下标为偶数的元素的最小值并输出。
{inta[10],min,i;
for(i=0;i<10;i++)
min=a[0];
for(i=2;i<10;i=i+2)
if()
min=a[i];
printf("%d",min);
37.下面程序是用递归函数实现求两个整数的最大公约数,主函数读入待求的两个整数并调
用公约数函数求解,输出结果。
请在横线上填入相应的语句以使程序完整。
intGcd(intm,intn)
{intr;
r=m%n;
returnn;
return;
{intm,n;
scanf("%d%d",&m,&n);
printf("Gcdofmandnis:
%d\n",);
(二)选择题:
1第一个结构化程序设计语言是
A)
D)Fortran
PascalB)CC)Basic
B)
以下哪一种程序设计语言是目前最受欢迎的编程语言之一
2.
15.
执行语句a=4*5,a*2,a+15;后
a的值是
35B)40C)55
D)20
16.
顺序结构,选择结构,循环结构
递归结构,
循环结构,
转移结构
C)
嵌套结构,循环结构,顺序结构
D)
选择结构,
顺序结构
17.
以下选项中不属于字符常量的是
__。
A)'C'B)'\072'C)'\xCC'D)"C"
18.设a为int型变量,分别执行下列赋值语句后,a所获得的值分别是。
a=125.534;a=20.0/3;a=(int)125.521%4;
A)125,6,31B)125,6,1
C)125,7,1D)125.534,6.666666,1.521
19.若已定义x和y为double类型变量,则表达式“x=1,y=x+3/2”的值是。
A)1B)2C)2.0D)2.5
20.以下选项中不属于字符常量的是。
A)"s"B)'\117'C)'\x86'D)'a'
21.以下选项中,不是C语句的是。
A)a+=b;B);
C){x++;++y;}D)printf(“%d”,a)22.以下非法的赋值语句是。
A)n=(i=2,++i);B)j++;C)++(i+1);D)x=j>0;
23.已知w=1,x=2,y=3,z=3,a=4,b=2;则执行语句(a=w>x)&&(b=y>z);后,a,b的值为。
A)1和1B)0和0C)4和2D)0和224.设有语句:
inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4
的值是。
A)2.5B)2.75C)2.0D)0.0
25.执行语句a=4*5,a*2,a+15;后a的值是。
A)35B)40C)55D)20
26.阅读程序:
#include"stdio.h"
{inta;floatb,c;
scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f",a,b,c);
若运行时从键盘上输入9876543210(0表示回车),则程序的输出结果。
A)a=98,b=765,c=4321B)a=98,b=765.000000,c=4321.000000
C)a=98,b=765.0,c=4321.0D)a=98.0,b=765.0,c=4321.0
27.下列四种数组定义中,合法的数组定义是—。
A)chara[]="hello";B)inta[4]={4,3,2,1,0};
C)chara="hello";D)chara[5]="hello";
28.下列循环不是无限循环。
A)for(y=0;x=1;++y);B)for(;;x=0);
C)while(x=1){x=1;}D)for(y=1,x=1;x>=++y;x++);
29.以下叙述正确的是。
A)do…while语句构成的循环不能用其他语句构成的循环来代替
B)do…while语句构成的循环只能用break语句退出
C)用do…while语句构成的循环,在while后的表达式为非零时结束循环
D)用do…while语句构成的循环,在while后的表达式为零时结束循环
30.下面的表达式中值为0的是。
A)5%7B)5/7.0C)5/7D)5*7
31.设intk;则语句for(k=0;k=1;k++);和语句for(k=0;k==1;k++);
执行的次数分别是。
A)无限和0B)0和无限C)都是无限D)都是0
32.下列循环不是无限循环。
33.有变量定义如下:
doublenum;,要使得num的值为3.14159,正确的输入语句是
A)scanf("%lf",num);B)scanf("%lf",&num);
C)scanf("%d",&num);D)scanf("%f",&num);
34.设charx[]="abcde",y[]={'a','b','c','d','e'};那么。
A)x数组的长度大于y数组的长度B)x数组的长度等于y数组的长度
C)x数组的长度小于y数组的长度D)x数组与y数组的存储区域相同
35.下面不正确的字符串赋值或赋初值方式是。
A)char*str;str="string";
B)charstr[7]={'s','t','r','i','n','g'};
C)charstr1[10];strl="string";
D)charstr1[]="string",str2[20];strcpy(str2,str1);
36.定义如下变量和数组:
inti;intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是。
for(i=0;i<3;i++)
printf("%d",x[i][2-i]);
A)159B)147C)357D)369
37.假设已定义chara[10];char*p;那么下面语句正确的是。
A)p=a;B)a="abcdef:
C)*p="abcdef"D)p=*a;
38.
若有说明:
inta[]={15,12,-9,28,5,3},*p=a;;则下列表达式是错误的。
41.下列编译预处理指令中,不正确的是__
A)#defineM3B)#include"stdio.h"
C)#includeD)#definePl=3.14159
42.
宏定义#includeG9.8中的宏名G表示。
一个单精度实数
一个双精度实数
一个字符串
不确定类型的数
43.
设inta=9,b=20;
则printf("%d,%d\n",a--,--b);
的输出结果.
A)9,19
B)9,20
C)10,19
D)10,20
44.
以下关于switch
语句和break
语句的描述正确的是
A)在switch语句中必须使用break语句
B)break语句只能用于switch语句体中
C)break语句只能用于循环语句中
D)在switch语句中可以不使用break语句
45.下面关于函数的理解,不正确的是
A)函数可以嵌套定义B)函数可以嵌套调用
C)函数可以没有形式参数D)函数可以有多个形式参数
46.以下叙述中正确的是。
A)全局变量的作用域一定比局部变量的作用域围大
B)静态(static)存储变量的生存期贯穿于整个程序的运行期间
C)函数的形参都属于全局变量
D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
47.若有定义inta[2][3],对元素a[i][j]地址的不正确引用是__
A)a[i]+j;B)*a+i*3+j;C)(a+i)+j;D)*(a+i)+j;
48.若有以下语句:
inta[3][2]={1,2,3,4,5,6,},*p[3];
p[0]=a[1];
则*(p[0]+1)所代表的数组元素是。
A)a[0][1]B)a[1][0]C)a[1][1]D)a[1][2]
49.下列对指针p的操作,正确的是。
A)int*p;*p=2;B)inta[5]={1,2,3,4,5},*p=&a;*p=5;
C)inta,*p=&a;D)floata[5];int*p=&a;
50.对于C程序的函数,下列叙述中正确的是__。
A)函数的定义不能嵌套,但函数调用可以嵌套
B)函数的定义可以嵌套,但函数调用不能嵌套
C)函数的定义和调用均可以嵌套
D)函数的定义和调用均不能嵌套
51.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
A)函数调用可以作为独立的语句存在
B)函数调用可以作为一个函数的实参
C)函数调用可以出现在表达式中
D)函数调用可以作为一个函数的形参
52.函数的返回值类型由__决定。
A)return后的表达式
B)定义函数时指定的返回值类型
C)调用函数时临时决定
D)主调用函数的类型
53.以下不能对二维数组
a进行正确初始化的语句是
A)inta[2][3]={0};
inta[][3]={{1,2},{0}};
C)inta[2][3]={{1,2},{3,4},{5,6}};D)inta[][3]={1,2,3,4,5,6};
54.下面对一维数组a进行正确初始化的语句是。
A)inta[5]={1,2};B)inta[2]={1,2,3,4,5};
C)inta[5]={,,1,2};D)inta{5}={1,2,3,4,5};
55.若函数定义时不指明函数的类型,则其默认的返回值类型是
A)voidB)任意类型C)intD)double
56.下面对一维数组定义错误的是_^_^_。
A)inta[]={1,2,3,4};B)chara[5];
C)chara[6]="test";D)intn=5,a[n];
57.以下选项中正确的语句组是__。
A)chars[];s="BOOK!
";B)char*s;s={"BOOK!
"};
C)chars[10];s="BOOK!
";D)char*s;s="BOOK!
";
58.若有下面的说明和定义:
structtest
{intm1;
charm2;
floatm3;
unionuu
{charu1[5];
intu2[2];
}ua;
};
则在VC+孫统中sizeof(structtest)的值是
A)9B)12C)13D)14
59.有如下定义:
structexam
{intx,y;
}v1;
则—是正确的引用或定义。
A)exam.x=10;B)examv2;v2.x=10;
C)structv2;v2.x=10;D)structexamv2={10};
60.
0,应选择的存储类别是
设函数外有整型变量n,为保证其在未赋值的情况下初值为
A)static
B)registerC)auto
D)extern
A)scanf()
B)gets()
C)getchar()
D)getc()
62.设函数中有整型变量n,
为保证其在未赋值的情况卜初值为
A)auto
B)register
C)static
(三)判断题:
1.在while循环中允许使用嵌套循环,但只能嵌套while循环。
2.在for循环中允许使用嵌套循环,但只能嵌套for循环。
3.while、do-while、for循环中的循环体语句都至少被执行一次。
4.一个C语言源程序文件中可以有多个main函数。
5.C程序中的else总是与在其之前未配对的最近的if组成配对关系。
6.switch语句的case表达式必须是常量表达式。
7.switch语句中必须要有default语句。
&自增运算符什+)或自减运算符(--)只能用于变量,不能用于常量或表达式。
9.函数的形式参数是局部变量。
10.访问数组元素时其下标必须是常量,不允许是表达式。
11.数组的元素作为函数的实参时采用的参数传递方式是地址传递。
12.C语言规定只能引用数组元素而不能一次引用整个数组。
13.定义int**p;,则二级指针变量p存放的是指针变量的地址。
14.定义int*p[4];,则标识符p是一个指针,指向一个含有4个整型元素的一
维数组。
15.定义int(*p)[4];,则标识符p是一个指针,指向一个含有4个整型元素的
一维数组。
16.函数不能嵌套定义但可以嵌套调用。
17.求余符号%两边必须是整型数据。
18.函数不能嵌套定义但可以嵌套调用。
19.数组的名称作为函数的实参时采用的参数传递方式是地址传递。
20.条件编译只能在调试程序时使用。
21.一个函数利用return可以返回多个函数值。
22.联合变量的所有成员共享同一段存空间,其占用的存是所需存最大的那个成员的空间。
23.用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。
24.结构体变量的所有成员共享同一段存空间,其占用的存是所需存最大的那个成员的空间。
(四)读程序题:
1.#include
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
case1:
a++;
case2:
a++,b++;
printf("a=%d,b=%d\n",a,b);return0;
2.#include
{inta=1,b=2;
for(;a<8;a++)
{a+=2;
if(a==6)continue;
if(a>7)break;
3.#includevoidfunc(intb[])
{intj;
for(j=0;j<4;j++)
b[j]=2*j;
{inta[]={5,6,7,8},i;
func(a);for(i=0;i<4;i++)
{printf("%d,",a[i]);}return0;
4.#include"stdio.h"
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
{if(j%2)continue;
x++;
printf("x=%d\n",x);
5.#include
{inta=0,b=3,m=0;
switch(a%3)
m++;break;
m++;switch(b%2){default:
m++;
case0:
printf("m=%d\n",m);return0;}
6.#includeinta(intx)
{staticinty=1;
y=y*x;
returny;
{inti;for(i=1;i<=5;i++)printf("%d\n",a(i));
7.#include
staticinta=5;
voidp1()
{p
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1