printf("min=%d\n",c);
return0;
}
第6部分循环结构程序设计
【6.1】执行语句for(i=1;i<4;i++);后,i的值是()
A.3B.4C.5D.不定
【6.2】执行语句for(i=1;i++<4;);后,i的值是()
A.3B.4C.5D.不定
【6.3】运行下列程序段的输出结果是()
m='a';
while(!
m)
printf("%c",m);
A.aB.aaa…C.不输出任何信息D.'a'
【6.4】在下列选项中,没有构成死循环的程序段是()
A.inti=100;B.for(;;);
while
(1)
{i=i%100+1;
if(i>100)
break;
}
C.intk=10;D.ints=36;
do{while(s);--s;
++k;
}while(k>=100);
【6.5】阅读程序段:
执行下列程序段后输出是()
intx;
for(x=10;x>7;x--)
{
if(x%3)
x--;
printf("%d",x);
}
【6.6】下列说法中正确的是()
A.break只用在switch语句中,而contine用在循环语句中
B.break只用在循环语句中,而contine用switch语句在中
C.break能结束循环,而contine只能结束本次循环
D.contine能结束整个循环过程,而break只能结束本次循环
【6.7】若有:
do{i=a-b++;printf("%d",i);}while(!
i);则while中的!
i可用()代替。
A.i==0B.i!
=1C.i!
=0D.以上均不对
【6.8】以下while循环执行的次数是()
k=0;
while(k=10)
k=k+1;
【6.9】有以下程序片段,请问执行后的输出结果是()
#include
intmain()
{
intn=10;
while(n>7)
{printf("%d",n--);
}
return0;
}
【6.11】以下循环语句执行的次数是()
inti,j;
for(i=5;i;i--)
for(j=0;j<4;j++){......}
【6.12】下列程序的输出结果是()
inti=0,sum=0;
do{
sum+=i;i++;
}while(i<5);
printf("%d\n",sum);
第7部分数组
【7.1】若定义inti,*p;使p指向i的赋值语句是()
A.p=&i;B.*p=&i;C.*p=i;D.p=*&i;
【7.2】合法的数组定义是()
A.chara={'H','e','l','l','o'};B.chara[5]={"H","e","l","l","o"};
C.chara[5]={'H','e','l','l','o'};D.chara[5]="Hello";
【7.3】下列一维数组说明中,正确的是()
A.#defineSIZE8
floatb[SIZE];
B.intn;scanf("%d",&n);floatb[n];
C.intm=7,a[m];
D.inta(10);
【7.4】若有说明inta[5][4];则对其数组元素的正确引用是()
A.a[3+1][2]B.a
(2)(3)C.a[0,2]D.a[3][5]
【7.5】运行下面程序段的输出结果是()
inta[7]={1,3,5};
printf("%d\n",a[3]);
A.0B.5C.3D.不确定数
【7.6】以下正确的数组定义语句是()
A.inty[1][4]={1,2,3,4,5}
B.floatx[3][]={{1},{2},{3}};
C.longs[2][3]={{1},{1,2},{1,2,3}};
D.doublet[][3]={0};
【7.7】若有说明:
inta[3]4];则a[i][j]之前的元素个数是()
A.j*4+iB.i*4+jC.i*4-1D.i*4+j+1
【7.8】以下程序的输出结果是()
intm[3][3]={{1},{2},{3}};
intn[3][3]={1,2,3};
printf("%d",m[1][0]+n[0][0]);
printf("%d\n",m[0][1]+n[1][0]);
【7.9】以下程序的输出结果是()
#include
intmain()
{
inti,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf("%d",x[i][2-i]);
return0;
}
【7.10】下列有关字符数组与字符串的说法中正确的是()
A.字符数组中存放的一定是一个字符串。
B.所有的字符数组都可以被当作中字符串处理。
C.对存放字符串的字符数组可以象一般数组一样对数组中的单个元素进行操作。
D.一个字符数组可以认为就是一个字符串。
【7.11】用字符串初始化字符数组,下列选项正确的是()
A.chars[5]={'a','e','i','o','u'};
B.chars[5];s="good";
C.chars[5]="abcd";
D.chars[5];s[]="good";
【7.12】不能正确为字符数组输入数据的是()
A.chars[5];scanf("%s",&s);B.chars[5];scanf("%s",s);
C.chars[5];scanf("%s",&s[0]);D.chars[5];get(s);
【7.13】若有chara[80],b[80];则正确的是()
A.puts(a,b);B.printf("%s,%s",a[],b[]);
C.putchar(a,b);D.puts(a);puts(b);
第8部分函数
【8.1】C语言程序的基本结构是()
A.函数B.语句C.字符D.程序行
【8.2】以下叙述中,正确的是()
A.C语言程序总是从第一个定义的函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
【8.4】已知函数fun的定义为:
voidfun()
{......}
则函数定义中void的含义是()
A.执行fun后,函数没有返回值B.执行fun后,函数不再返回
C.执行fun后,函数可以返回任何类型的值D.以上三个答案都不对
【8.5】以下叙述中错误的是()
A.函数中的自动变量可以赋初值,每调用一次赋一次初值
B.调用函数时,实参和形参在类型上只需赋值兼容
C.外部变量的隐含类型是自动存储类别
D.函数形参的存储类型是自动(auto)类型的变量
【8.7】函数返回值的数据类型是由()决定的
A.return语句中的表达式类型B.调用该函数的主调函数类型
C.调用时临时决定D.定义函数时所指定的函数类型
【8.8】变量的存储类型说明它们存储在内存的哪些区域,请写出至少3种
()。
【8.9】下面的函数递归函数sum(intn)完成1至n的累加和。
intsum(intn)
{if(n<=0)
printf("dataerror\n");
if(n==1)
;
else
return;
}
【8.10】下面的函数是一个求阶乘的递归函数。
intfacto(intn)
{if(n==1)
;
else
return;
}
第9部分编译预处理
【9.1】完成编译预处理的工作是在()完成的。
A.编译时B.编译前C.编译后D.执行时
【9.2】下列属于C语句的是()
A.10>=x&&x>=-10B.#include
C.{a=b;b=c;c=a;}D./*thisisaprogram*/
第10部分指针
【10.1】若定义inti,*p;使p指向i的赋值语句是()
A.p=&i;B.*p=&i;C.*p=i;D.p=*&i;
【10.3】有以下程序
intfun(intx,inty,int*cp,int*dp)
{*cp=x+y;*dp=x-y;
}
main()
{inta,b,c,d;
a=30;b=50;
fun(a,b,&c,&d);
printf("%d,%d\n",c,d);
}
输出结果为()
【10.4】运行以下程序段的输出结果是()。
chars[10]="abcdefg",*p;
p=s;p++;
printf("%s",p);
A.abcdefgB.bcdefgC.cdefgD.编译不能通过
【10.5】若有程序段:
int**pp,*p,a=100,b=200;
p=&b;
pp=&p;
printf("%d,%d\n",*p*(**pp));
则输出结果为()
填空题
【10.6】若有以下定义和语句:
intarray[10]={23,54,10,33,47,98,72,80,61},*p;
p=array;
则p[5]的值是98。
【10.7】下面程序的输出结果是。
charb[]="ABCD";
char*p;
for(p=b;*p;p+=2)
printf("%s",p);
【10.8】下面程序的输出结果是________。
inta[10]={19,23,44,17,37,28,49,36},*p;
p=a;
printf("%d\n",(p+=3)[3]);
【10.9】下面程序的输出结果是______。
inti=3,j=1;
char*a="DCBA";
printf("%c%c\n",a[i],a[j]);
【10.10】以下函数的功能是:
把两个整数型指针所指向的存储单元中的内容进行交换。
请填空。
exchange(int*x,int*y)
{intt;
t=*y;
*y=_______;
*x=_______;
}
*【10.11】以下fun函数的功能是:
累加数组元素中的值,n为数组中元素的个数。
累加的和放入x所指向的存储单元中,请填空。
#include
voidfun(intb[],intn,int*x)
{intk,r=0;
for(k=0;kr=;
=r;
}
intmain()
{inta[]={1,2,3,4},sum=0;
fun(a,4,&sum);
cout<return0;
}
*【10.12】说明语句:
int(*p)();的含义是()
A.p是一个指向一维数组的指针变量
B.p是一个指针变量,指向一个整型数据
C.p是一个指向函数的指针,该函数的返回值是一个整数
D.以上都不对
*【10.13】设有说明int(*ptr)[M];其中的标识符是()
A.M个指向整型变量的指针
B.指向M个整型变量的函数指针
C.一个指向具有M个整型元素的一维数组的指针
D.具有M个指针元素的一维指针数组,每个元素都只能指向整型变量
*【10.14】已知:
d