if(y<0)z=0;
elsez=z+1;
printf(“%d\n”,z);}
A、3B、2C、1D、0
57、以下程序段,intk=10;while(k=0)k=k+1;则下面描述中正确的是()。
A、while循环执行10次B、循环是无限循环
C、循环体语句一次也不执行D、循环体语句执行一次
58.以下程序中,while循环的循环次数是()。
main()
{
inti=0;
while(i<10)
{
if(i<1)break;
i++;
}
}
A、1B、10C、6D、死循环,不能确定次数
60、若执行以下程序时从键盘上输入9,则输出结果是()
A、11B、10C、9D、8
main()
{intn;
scanf("%d",&n);
if(n++<10)printf("%d\n",n);
elseprintf("%d\n",n--);
}
62、对于下面①,②两个循环语句,()是正确的描述。
①while
(1);②for(;;);
A、①②都是无限循环B、①是无限循环,②错误
C、①循环一次,②错误D、①②皆错误
63、语句while(!
E);中的表达式!
E等价于()
A、E==0B、E!
=1C、E!
=0D、E==1
64、下面程序段运行结果是()
x=y=0;while(x<15)y++,x=x+(++y);
pirntf(“%d,%d”,y,x);
A、20,7B、6,12C、20,8D、8,20
65、设有以下程序段intx=0,s=0;
while(!
x!
=0)s+=++x;
printf(“%d”,s);则()
A、运行程序段后输出0B、运行程序段后输出1
C、程序段中的控制表达式是非法的D、程序段执行无限次
66、下面程序段的运行结果是()
intn=0;while(n++<=2);printf(“%d”,n);
A、2B、3C、4D、有语法错误
67、下面程序的运行结果是()
#include
main(){intnum=0;
while(num<=2)
{num++;printf(“%d”,num);}}
A、1B、12C、123D、1234
68、c语言中while和do-while循环的主要区别是()
71、若i为整型变量,则以下循环执行次数是()
for(i=2;i==0;)printf(“%d”,i--);
A、无限次B、0次C、1次D、2次
72、下面程序的运行结果是()
#include
main(){inty=10;
do{y--;}while(--y);
printf(“%d\n”,y--);}
A、-1B、1C、8D、0
74、下面程序段的运行结果是()
for(y=1;y<10;)y=((x=3*y,x+1),x-1);
printf(“x=%d,y=%d”,x,y);
A、x=27,y=27B、x=12,y=13C、x=15,y=14D、x=y=27
76、以下程序段输出结果是()
A、9B、1C、11D、10
intk,j,s;
for(k=2;k<6;k++,k++)
{s=1;
for(j=k;j<6;j++)s+=j;
}
printf(“%d\n”,s);
78、以下程序段输出结果是()
A、10B、9C、10D、9
9898
8787
76
intn=10;
while(n>7)
{n--;
printf(“%d\n”,n);
}
81、以下程序的输出结果是()
A、741B、852C、963D、875421
main()
{inty=10;
for(;y>0;y--)
if(y%3==0)
{printf(“%d”,--y);continue;}
}
86、C语言中,字符(char)型数据在微机内存中的存储形式是()
A、反码B、补码C、EBCDIC码D、ASCII码
87、设有定义语句chara=‘\72’;,则变量a()
A、包含1个字符B、包含2个字符
C、包含3个字符D、包含4个字符
88、C语言中不合法的字符常量是()
A、‘\xff’B、‘\65’C、‘&’D、‘\028’
89、C语言中不合法的字符串常量是()
A、“121”B、‘y=’C、“\n\n”D、“ABCD\x6d”
90、判断char型变量c是否为大写字母的最简单且正确的表达式是:
()
A、‘A’<=c<=‘Z’B、(c>=‘A’)&(c<=‘Z’)
C、(‘A’<=c)AND(‘Z’>=c)D、(c>=‘A’)&&(c<=‘Z’)
91、以下程序的输出结果是()
A、因输出格式不合法,无正确输出B、65,90
C、A,YD、65,89
main()
{charc1=’A’,c2=’Y’;
printf(“%d,%d\n”,c1,c2);
}
98、以下程序的输出结果是()
A、因变量无定义输出不定值B、0C、-1D、1
#include“stdio.h”
main()
{printf(“%d\n”,NULL);}
99、以下程序的输出结果是
A、5,2,3B、-5,-12,-7C、-5,-12,-17D、5,-2,-7
voidsub(intx,inty,int*z)
{*z=y-x;}
main()
{inta,b,c;
sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);
printf(“%d,%d,%d\n”,a,b,c);}
103、在c语言中,引用数组元素时,其数组下标的数据类型允许是()
A、整型常量B、整型表达式C、整型常量或整型表达式
D、任何类型的表达式
104、以下对一维整型数组a的正确说明是()
A、inta(10);B、intn;scanf(“%d”,&n);inta[n];
C、intn=10,a[n];D、#defineSIZE10int[SIZE];
105、以下能对一维数组a进行正确初始化的语句是()。
A、inta[10]=(0,0,0,0,0);B、inta[10]={};
C、inta[]={10,12,56};D、inta[]={‘10*1’};
106、以下对二维数组a的正确说明是()。
A、inta[3][];B、floata(3,4);C、doublea[1][4];D、floata(3)(4);
107、若有说明:
inta[3][4];则对a数组元素的正确引用是()。
A、a[2][4]B、a[1,3]C、a[1+1][0]D、a
(2)
(1)
108、若有说明:
inta[3][4];则对a数组元素的非法引用是()。
A、a[0][2*1]B、a[1][3]C、a[4-2][0]D、a[0][4]
109、以下能对二维数组a进行正确初始化的语句是()。
A、inta[2][]={{1,0,1},{5,2,3}};B、inta[][3]={{1,2,3},{4,5,6}};
C、inta[2][4]={1,2,3},{4,5}{6}};D、inta[][3]={{1,0,1}{},{1,1}};
111、若有说明:
inta[3][4]={0};则下面正确的叙述是()。
A、只有元素a[0][0]可得到初值0B、数组a中每个元素均可得到初值0
C、数组a中各元素都可得到初值,但不一定为0D、此说明语句不正确
113、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为()。
(假设a[0][0]位于数组的第一个位置上。
)
A、i*m+jB、j*m+IC、i*m+j-1D、i*m+j+1
114、对以下说明语句的正确理解是()。
inta[10]={6,7,8,9,10};
A、将5个初值依次赋给a[1]至a[5]B、将5个初值依次赋给a[0]至a[4]
C、将5个初值依次赋给a[6]至a[10]D、因为数组长度与初值的个数不相同,所以此语句不正确
115、若有说明:
inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。
A、2B、3C、4D、无确定值
116、定义如下变量和数组:
intk;
inta[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是()。
for(k=0;k<3;k++)printf(“%d”,a[k][2-k]);
A、357B、369C、159D、147
117、下面是对s的初始化,其中不正确的是()。
A、chars[5]={“abc”};B、chars[5]={‘a’,’b’,’c’};
C、chars[5]=””;D、chars[5]=”abcdef”;
122、有下面的程序段
chara[3],b[]=”China”;
a=b;printf(“%s”,a);则()。
A、运行后将输出ChinaB、运行后将输出Ch
C、运行后将输出ChiD、编译出错
123、判断字符串a和b是否相等,应当使用()。
A、if(a==b)B、if(a=b)C、if(strcpy(a,b))D、if(strcmp(a,b))
124、判断字符串s1是否大于字符串s2,应当使用()。
A、if(s1>s2)B、if(strcmp(s1,s2))
C、if(srtcmp(s2,s1)>0)D、if(strcmp(s1,s2)>0)
128、以下正确的函数定义形式是()。
A、doublefun(intx,inty)B、doublefun(intx;inty)
C、doublefun(intx,inty);D、doublefun(intx,y);
130、以下正确的说法是()。
在C语言中
A、实参和与其对应的形参各占用独立的存储单元
B、实参和与其对应的形参共占用一个存储单元
C、只有当实参和与其对应的形参同名时才共占用存储单元
D、形参是虚拟的,不占用存储单元
131、以下不正确的说法是()。
C语言规定
A、实参可以是常量、变量或表达式B、形参可以是常量、变量或表达式
C、实参可以为任意类型D、形参应与其对应的实参类型一致
132、以下正确的说法是()。
A、定义函数时,形参的类型说明可以放在函数体内
B、return后边的值不能为表达式
C、如果函数值的类型与返回值类型不一致,以函数值类型为准
D、如果形参与实参的类型不一致,以实参类型为准
133、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()。
A、float型B、int型C、long型D、double型
134、C语言规定,函数返回值的类型是由()。
A、return语句中的表达式类型所决定
B、调用该函数时的主调函数类型所决定
C、调用该函数时系统临时决定
D、在定义该函数时所指定的函数类型所决定
135、下面函数调用语句含有实参的个数为()。
Func((exp1,exp2),(exp3,exp4,exp5));
A、1B、2C、4D、5
138、若用数组名作为函数调用的实参,传递给形参的是()。
A、数组的首地址B、数组第一个元素的值
C、数组中全部元素的值D、数组元素的个数
143、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()
A、自动(auto)B、静态(static)C、外部(extern)D、寄存器(register)
144、以下程序的运行结果是()
sub(intx,inty,int*z)
{*z=y-x;}
main(){inta,b,c;
sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);}
printf(“%4d,%4d,%4d\n”,a,b,c);}
A、5,2,3B、-5,-12,-7C、-5,-12,-17D、5,-2,-7
146、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是()
main(){int*p,*q,a,b;
p=&a;printf(“inputa:
”);
scanf(“%d”,*p);
……}
A、*p表示的是指针变量p的地址
B、*p表示的是变量a的值,而不是变量a的地址
C、*p表示的是指针变量p的值
D、*p只能用来说明p是一个指针变量
148、若有说明:
int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是()
A、p1=&m;p2=&p1;B、p1=&m;p2=&n;*p1=*p2;
C、p1=&m;p2=p1;D、p1=&m;*p2=*p1;
149、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是()
A、c=*p1+*p2;B、p2=c;C、p1=p2;D、c=*p1*(*p2)
150、下面判断正确的是()
A、char*a=”china”;等价于char*a;*a=”china”;
B、charstr[10]={“china”};等价于charstr[10];str[]={”china”};
C、char*a=”china”;等价于char*s;s=”china”;
D、charc[4]=”abc”,d[4]=”abc”;等价于charc[4]=d[4]=”abc”;
151、下面能正确进行的字符串赋值操作的是()
A、chars[5]={“ABCDE”};B、chars[5]={‘A’,’B’,’C’,’D’,’E’};
C、char*s;s=”ABCDE”;D、char*s;scanf(“%s”,s);
152、若有以下定义,则对a数组元素的正确因用是()
inta[5],*p=a;
A、*&a[5]B、a+2C、*(p+5)D、*(a+2)
153、若有定义:
inta[2][3];则对a数组的第i行第j列元素值得正确引用为()
A、*(*(a+i)+j)B、(a+i)[j]C、*(a+i+j)D、*(a+i)+j
154、若有以下定义和语句,则对a数组元素地址的正确引用为()
inta[2][3],(*p)[3];p=a;
A、*(p+2)B、p[2]C、p[1]+1D、(p+1)+2
158、库函数strcpy用以复制字符串。
若有以下定义和语句:
charstr1[]=”string”,str2[8],*str3,*str4=”string”;
则对库函数strcpy的不正确调用是()
A、strcpy(str1,”HELLO1”);B、strcpy(str2,”HELLO2”);
C、strcpy(str3,”HEELO3”);D、strcpy(str4,”HELLO4”);
159、若已定义:
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))
160、以下程序段给数组所有元素输入数据,应在下划线处填入的是
A、a+(i++)B、&a[i+1]C、a+iD、&a[++i]
main()
{inta[10],i=0;
while(i<10)scanf(“%d”,___):
……}
161、以下程序的输出结果是()
A、3B、4C、1D、2
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf(“%d\n”,*(p+2));
}
164、以下程序的输出结果是()
A、6B、8C、4D、2
main()
{inta[]={2,4,6,8},*p=a,i;
for(i=0;i<4;i++)a[i]=*p++;
printf(“%d\n”,a[2]);
}
174、以下程序的输出结果是()
A、1,5,9,B、1,4,7,C、3,5,7,D、3,6,9,
main()
{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]);}
176、以下能正确进行字符串赋值、赋初值的语句组是()
A、chars[5]={‘a’,’e’,’i’,’o’,’u’};
B、char*s;s=”good!
”;
C、chars[5]=”good!
”;
D、chars[5];s=”good”;
177、以下程序段的输出结果是()
charstr[]=”ABCD”,*p=str;
printf(“%d\n”,*(p+4));
A、68B、0C、字符