版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
39/391数据类型与表达式1.1基本概念1、一个C语言程序总是从()。A、主过程开始执行B、主函数开始执行C、子程序开始执行D、主程序开始执行【答案】B2、C语言程序从main()函数开始执行,所以这个函数要写在()。A、程序文件的开始B、程序文件的最后C、它所调用的函数的前面D、程序文件的任何位置【答案】D3、下列关于C语言的叙述错误的是()。A、大写字母和小写字母的意义相同B、不同类型的变量可以在一个表达式中C、在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D、同一个运算符号在不同的场合可以有不同的含义【答案】A4、在C语言中,错误的int类型的常数是()。A、32768B、0C、037D、0xAF【答案】A5、在C语言中,整数-8在内存中的存储形式是()。A、1111111111111000B、1000000000001000C、0000000000001000D、1111111111110111【答案】A6、C语言中字符型(char)数据在内存中的存储形式是()。A、原码B、补码C、反码D、ASCII码【答案】D7、已知a、b、c为int类型变量,若有输入语句:scanf("a=%db=%dc=%d",&a,&b,&c);为使a值为10,b值为20,c值为30,从键盘输入数据的正确形式应当是()。A、102030<回车>B、a=10b=20c=30<回车>C、10<回车>20<回车>30<回车>D、a=10<回车>b=20<回车>c=30<回车>【答案】B8、以下能正确定义整型变量x、y和z并为其赋初值5的语句是()。A、intx=y=z=5;B、intx,y,z=5;C、intx=5,y=5,z=5;D、x=5,y=5,z=5;【答案】C9、已知ch是字符型变量,则不正确的赋值语句是()。A、ch=5+9;B、ch='\0';C、ch='7'+'9';D、ch='a+b';【答案】D10、设x,y是float型变量,则不正确的赋值语句是()。A、++x;B、y=int(5);C、x*=y+1;D、x=y=0;【答案】B11、若a为int类型变量,则执行以下程序段后a的值为()。a=5;a*=a/=a++;A、2B、1C、40D【答案】A12、若a和b均为int型变量,则执行以下程序断后x的输出是()。x=15;y=15;printf("%d\n",x%=(y%=2));A、0B、1C、6D【答案】A13、设a、b、c、d均是int类型变量,为了使以下程序段的输出为:1234+123+12+1,正确的输入形式应当是()。scanf("%4d+%3d+%2d+%1d",&a,&b,&c,&d);printf("%4d+%3d+%2d+%1d",a,b,c,d);A、1234123121<回车>B、1234123412341234<回车>C、1234+1234+1234+1234<回车>D、1234+123+12+1<回车>【答案】D14、设c1、c2均是char类型变量,则以下不正确的函数调用是()。A、scanf("c1=%cc2=%c",&c1,&c2);B、getchar()C、putchar(c2);D、putchar(c1,c2)【答案】D15、逻辑运算符两侧运算对象的数据()。A、只能是0或1B、只能是0或非0正数C、只能是整型或字符型数据D、可以是任何类型的数据【答案】D16、判断char型变量c1是否为大写字母的正确表达式是()。A、'A'<=c1<='Z'B、(c1>='A')&(c1<='Z')C、(c1>='A')&&(c1<='Z')D、('A'<=c1)AND('Z'>=c1)【答案】C17、设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是()。A、'i'&&'j'B、i<=jC、i||j+k&&j-kD、!((i<j)&&!k||1)【答案】D18、设ch是char类型变量,其值是A,则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是()。A、ZB、AC、aD、z【答案】C19、若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是()。A、num%2==1B、!(num%2==0)C、!(num%2)D、num%2【答案】C20、已知longi=32768;执行语句printf("%d",i);屏幕显示()。A、-1B、-32768C、1D、32768【答案】B1.2阅读程序题21、下面程序的输出结果是()。
#include<stdio.h>
main()
{intx=10;
{intx=20;
printf("%d,",x);
}
printf("%d\n",x);
}
A、10,20B、20,10C、10,10D、20,20【答案】B22、若a、b、c均为int型变量,则执行以下程序段后的输出结果为()。b=(a=10,a+5,c=10);printf("a=%d,b=%d,c=%d\n",a,b,c);c=(a=10,b=5,a+b);printf("a=%d,b=%d,c=%d\n",a,b,c);A、a=10,b=15,c=10B、a=10,b=10,c=10a=10,b=5,c=10a=10,b=5,c=10C、a=10,b=10,c=10D、a=10,b=10,c=10a=10,b=5,c=15【答案】C23、以下程序的输出结果是()。main()
{intx=10,y=10;printf("%d%d\n",x――,――y);
}
A、1010 B、99 C、910 D、109【答案】D24、以下程序的输出结果是()。
main()
{intn=1;
printf("%d%d%d\n",n,n++,n--);
}
A、111 B、101 C、110 D、121【答案】B25、以下程序的输出结果是()。
main()
{intx=0x02ff,y=0x0ff00;
printf("%d\n",(x&y)>>4|0x005f);
}
A、127 B、255 C、128 D、1【答案】A26、下面程序的输出结果是()。
main()
{inta=111;
a=a^00;
printf("%d,%o\n",a,a);
}
A、111,157 B、0,0 C、20,24 D、7,7【答案】A27、以下程序的输出结果是()。main()
{floata;
a=1/100000000;
printf("%g",a);
}
A、0.00000e+00 B、0.0 C、1.00000e-07 D、0【答案】D1.3程序填空题28、下面程序的功能是不用第三个变量,实现两个数的对调操作。
#include<stdio.h>
main()
{inta,b;
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
a=①;
b=②;
a=③;
printf("a=%d,b=%d\n",a,b);
}【答案】①a+b②a-b③a-b2控制结构2.1基本概念1、以下正确的if语句是()。A、if(n>0)printf("%f",n)printf("%f",-n);B、if(n>0){n=n+m;printf("%f",n);}elseprintf("%f",-n);C、if(n>0){n=n+m;printf("%f",n);};elseprintf("%f",-n);D、if(n>0){n=n+m;printf("%f",n)};elseprintf("%f",-n);【答案】B2、以下程序()。main(){intx1=3,x2=0,x3=0;if(x1=x2+x3)printf("****");elseprintf("####");}A、输出:****B、输出:####C、存在语法错误D、无输出结果【答案】B3、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与()。A、缩排位置相同的if配对B、其之前最近且不带else的if配对C、其之前最近的if配对D、第一个if配对【答案】B4、以下关于switch语句和break语句的描述中正确的是()。A、在switch语句中必须使用break语句B、break语句只能用于switch语句体中C、break语句只能用于循环语句中D、在switch语句中使用break语句或continue语句的作用相同【答案】D5、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是()。A、A%2==1
B、!(A%2==0)
C、
!(A%2)
D、
A%2
【答案】C6、已知int
x=10,y=20,z=30;以下语句执行后x,y,z的值是()。
if(x>y)
z=x;
x=y;
y=z;
A、
x=10,
y=20,
z=30
B、
x=20,
y=30,
z=30
C、
x=20,
y=30,
z=10
D、
x=20,
y=30,
z=20
【答案】B7、设有程序段()。intx=10;while(x=0)x=x-1;A、while循环执行10次B、循环是无限循环C、循环体语句一次也不执行D、循环体语句只执行一次【答案】C8、语句while(!y)中的表达式!y等价于()。A、y==0B、y!=1C、y!=0D【答案】A9、以下关于do-while循环不正确的描述是()。A、d0-while的循环体至少执行一次B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C、在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作D、do-while的循环体可以是复合语句【答案】B10、设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是()。for(y=100;x!=y;++x,y++)printf("****\n");A、循环体只执行一次B、是无限循环C、循环体一次都不执行D、for语句中存在语法错误【答案】C11、以下程序段中的do-while循环()。m=-1;do{m=m*m;}while(!m);A、是死循环B、执行二次C、执行一次D、有语法错误【答案】C12、以下关于for循环的正确描述是()。A、for循环只能用于循环次数已经确定的情况B、for循环是先执行循环体语句,后判断表达式C、在for循环中,不能用break语句跳出循环体D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来【答案】D13、语句for(表达式1;;表达式3)等价于()。A、for(表达式1;0;表达式3) B、for(表达式1;1;表达式3)C、for(表达式1;表达式1;表达式3) D、for(表达式1;表达式3;表达式3)【答案】B14、若k为整型变量,则以下for循环的执行次数是()。for(k=2;k==0;)printf("%d",k--);A、无限次B、0次C、1次D、2次【答案】B15、以下程序段的执行结果是()。intx=-3;do{printf("%d\n",x++);}while(!x);A、-3B、-2C、-1D、陷入死循环【答案】A16、以下程序段中是死循环的是()。A、intn=1;B、intn=1;while(!n)do{n--;n++;}while(n);C、intn=1;D、for(n=5;n<1;);do{n++;}while(n);【答案】C17、以下能正确计算1×2×3×…×10的程序段是()。A、doB、do{k=1;n=1;{k=1;n=0;n=n*k;n=n*k;k++;k++;}while(k<=10);}while(k<=10);C、k=1;n=1;D、k=1;n=0;dodo{n=n*k;{n=n*k;k++;k++;}while(k<=10);}while(k<=10);【答案】C18、若有以下程序段:for(m=1;m<=100;m++){scanf("%d",&y);if(y<0)continue;printf("%3d",m);}正确的描述是()。A、)当y<0时整个循环结束B、y>=0时什么也不输出C、printf函数永远也不执行D、)最多允许输出100个非负整数【答案】D19、以下程序段等价于()。for(k=100;k<=200;k++){if(k%3==0)continue;printf("%4d",k);}A、for(k=100;(k%3)&&k<=200;k++)printf("%4d",k);B、for(k=100;(k%3)||k<=200;k++)printf("%4d",k);C、for(k=100;k<=200;k++)if(k%3!=0)printf("%4d",k);D、for(k=100;k<=200;k++){if(k%3)printf("%4d",k);elsecontinue;break;}【答案】C2.2阅读程序题20、下面程序的输出结果是()。main()
{inta=1,i=a+1;
do
{a++;
}while(!~i++>3);
printf("%d\n",a);
}
A、1 B、2 【答案】B21、下面程序的输出结果是()。
main()
{chars[12]="abook";
printf("%.4s",s);
}
A、abook! B、abook!<四个空格> C、abo D、格式描述错误,输出不确定【答案】C22、下面程序的输出结果是()。
main()
{inta,b;
scanf("%2d%3d",&a,&b);
printf("a=%db=%d\n",a,b);
}
A、a=12b=34 B、a=123b=45 C、a=12b=345 D、语句错误【答案】C23、以下程序的输出结果是()。main(){inta=0,b=1,c=0,d=20;if(a)d=d-10;elseif(!b)if(!c)d=15;elsed=25;printf("d=%d\n",d);}A、d=10 B、d=15 C、d=20 D、d=25【答案】C24、下面程序的输出结果为()。main(){inta=1,b=0;switch(a){case1:switch(b){case0:printf("**0**");break;case1:printf("**1**");break;}case2:printf("**2**");break;}}A、**0**B、**0****2**C、**0****1****2**D、有语法错误【答案】B25、若执行下述程序时从键盘输入34,则输出结果是()。#include<stdio.h>main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;s*=s;printf("%d\n",s*s);}A、186B、256C、324D、400【答案】B26、下面程序的输出是()。main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}A、a=2,b=1B、a=1,b=1C、a=1,b=0D、a=2,b=2【答案】A27、下面程序的运行结果是()。main(){intm=0;while(m<=2){m++;printf("%d",m);}printf("\n");}A、1B、12C、123D、1234【答案】C28、下面程序的输出结果是()。main(){intx,i;for(i=1;i<=100;i++){x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf("%d",x);}}A、3981B、4284C、2668D、2870【答案】C29、下面程序的输出结果是()。main(){intk=0;charc='A';do{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;contiue;case'E':k=k+10;break;default:k=k/3;}k++;}while(c<'C');printf("k=%d\n",k);}A、k=1B、k=2C、k=3D、k=4【答案】D30、在执行以下程序时,为了使输出结果为t=4,则给a和b输入的值应满足的条件是()。#include<stdio.h>main(){ints,t,a,b;scanf("%d,d",&a,&b);s=1;t=1;if(a>0)s=s+1;if(a>b)t=s+t;elseif(a==b)t=5;elset=2*s;printf("t=%d\n",t);}A、a>bB、a<b<0C、0<a<bD、0>a>b【答案】C31、从键盘上输入"446755"时,下面程序的输出是()。
#include<stdio.h>
main()
{intc;
while((c=getchar())!='\n'){switch(c-'2')
{case0:
case1:putchar(c+4);
case2:putchar(c+4);break;
case3:putchar(c+3);
default:putchar(c+2);break;
}
}printf("\n");}
A、888988B、668966C、88898787D、66898787【答案】C32、假定从键盘上输入"3.6,2.4<回车>",下面程序的输出是()。
#include<math.h>
main()
{floatx,y,z;
scanf("%f,%f",&x,&y);
z=x/y;
while(1)
{if(fabs(z)>1.0)
{x=y;
y=z;
z=x/y;
}
elsebreak;
}
printf("%f\n",y);
}
A、1.500000B、1.600000C、2.000000D、2.400000【答案】B33、下面程序的输出结果是()。
main()
{inti,j,k=10;
for(i=0;i<2;i++)
{k++;
{intk=0;
for(j=0;j<=3;j++)
{if(j%2)continue;
k++;
}
}
k++;
}
printf("k=%d\n",k);
}
A、k=4B、k=8C、k=14D、k=18【答案】C2.3程序填空题34、下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。
main()
{floatx,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while(①)
{if(x>amax)amax=x;
if(②)amin=x;
scanf("%f",&x);
}
printf("\namax=%f\namin=%f\n",amax,amin);
}【答案】①x>=0②x<amin35、下面程序的功能是输出1到100之间每位数的乘积大于每位数的和的数。例如数字26,数位上数字的乘积12大于数字之和8。
main()
{intn,k=1,s=0,m;
for(n=1;n<=100;n++)
{k=1;
s=0;
①;
while(②)
{k*=m%10;
s+=m%10;
③;
}
if(k>s)printf("%d",n);
}
}【答案】①m=n②m>0③m=m/1036、下面程序的功能是统计用0至9之间的不同的数字组成的三位数的个数。
main()
{inti,j,k,count=0;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
if(①)continue;
elsefor(k=0;k<=9;k++)
if(②)count++;
printf("%d",count);
}【答案】①i==j②k!=i&&k!=j37、下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数。
main()
{inti,j;
for(i=0;①;i++)
{j=i*10+6;
if(②)countinue;
printf("%d",j);
}
}【答案】①i<=9②j%3!=038、下面程序的功能是计算100至1000之间有多少个数其各位数字之和是5,请填空。main(){inti,s,k,count=0;for(i=100;i<=1000;i++){s=0;k=i;while(①){s=s+k%10;k=②;}if(s!=5)③;count++;}printf("%d",count);}【答案】①k!=0②k/10③continue39、以下程序的功能是求出下面算式中的X、Y、Z的值,请填空。算式:XYZ+YZZ532main(){intx,y,z,k,result=532;for(x=1;x<10;x++)for(y=1;y<10;y++)for(z=_①_;_②_;z++){k=(_③_)+(100*y+10*z+z);if(k==result)printf("X=%d,Y=%d,Z=%d\n",x,y,z);}}【答案】①0②z<10③100*x+10*y+z40、下面程序的功能是求1000以内的所有完全数,请填空。(说明:一个数如果恰好等于它的因子之和(除自身外),则称该数为完全数,例如:6=1+2+3,6为完全数。)main(){inta,i,m;for(z=1;a<=1000;a++){for(_①_;i<=a/2;i++)if(!(a%i))_②_;if(m==a)printf("%4d",a);}}【答案】①i=1,m=0②m+=i3函数3.1基本概念1、以下正确的函数说明是()。A、intfun(inta,b)B、floatfun(inta;intb)C、doublefun()D、intfun(chara[][])【答案】C2、以下正确的函数形式是()。A、doublefun1(intx,inty)B、fun1(intx,y){z=x+y;returnz;}{intz;returnz;}C、fun1(x,y)D、doublefun1(intx,inty){intx,y;doublez;{doublez;z=x+y;z=x+y;returnz;}returnz;}【答案】D3、以下正确的说法是()。A、实参和与其对应的形参各占用独立的存储单元B、实参和与其对应的形参共占用一个存储单元C、只有当实参和与其对应的形参同名时才共用存储单元D、形参是虚拟的,不占用存储单元【答案】A4、以下正确的描述是()。A、定义函数时,形参的类型说明可以放在函数体内B、return后面的值不能为表达式C、如果函数值的类型与返回值类型不一致,以函数值类型为准D、如果实参与形参的类型不一致,以实参类型为准【答案】C5、C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是()。A、地址传递B、单向值传递C、由实参传给形参,再由形参传回实参D、由用户指定传递方式【答案】B6、以下程序存在语法性错误,关于错误原因的正确说法是()。main(){intA=5,b;voidp_ch();……b=p_ch(A);……}A、语句voidp_ch();有错,它是函数调用语句,不能使用void说明B、变量名不能使用大写字母C、函数说明和函数调用语句之间有矛盾D、函数名中不能使用下划线【答案】C7、C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是()。A、floatB、intC、longD、double【答案】B8、在一个源文件中定义的全局变量的作用域为()。A、本文件的全部范围B、本程序的全部范围C、本函数的全部范围D、从定义该变量的位置开始至本文件结束【答案】D9、以下正确的描述是()。A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数的调用均不可以嵌套D、函数的定义和函数的调用均可以嵌套【答案】B10、若使用一维数组名作函数实参,则以下正确的说法是()。A、必须在主调函数中说明此数组的大小B、实参数组类型与形参数组类型可以不匹配C、在被调函数中,不需要考虑形参数组的大小D、实参数组名与形参数组名必须一致【答案】A11、如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是()。A、该变量只在该复合语句中有效B、该变量在该函数中有效C、该变量在本程序范围内有效D、该变量为非法变量【答案】A3.2阅读程序题12、下列程序的输出结果是()。去掉#include<stdio.h>voidfun();voidmain(){intx=1;if(x==1){intx=2;printf(“%d”,++x);}voidfun(){printf(“%d”,x++);}A、2,1,1 B、1,2,1 C、2,2,2 D、2,2,1【答案】C13、以下程序的运行结果是()。main(){inta=1,k;for(k=0;k<3;k++)printf("%4d",f1(a));}f1(intx){staticintz=3,y=0;y++;z++;return(x+y+z);}A、6810 B、666 C、789 D、7911【答案】A14、以下程序的运行结果是()。#include<stdio.h>voidff1(){externintx,y;inta=15,b=10;x=a-b;y=a+b;}intx,y;main(){inta=7,b=5;x=a+b;y=a-b;ff1();printf("%d,%d\n",x,y);}A、12,2B、不确定C、5,25D、1,12【答案】C15、下面程序的输出结果是()。
#include<stdio.h>
func(inta,intb)
{intc;
c=a+b;
return(c);
}
main()
{intx=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);
}
A、11B、20C、21D、31【答案】C16、下面程序的输出结果是()。
#include<stdio.h>
intk=1;
main()
{inti=4;
fun(i);
printf("\n%d,%d",i,k);/*①*/
}
fun(intm)
{m+=k;k+=m;
{chark='B';
printf("\n%d",k-'A');/*②*/
}
printf("\n%d,%d",m,k);/*③*/
}
①A)4,1B)5,6C)4,6D)A,B,C参考答案都不对
②A)1B)-59C)-64D)A,B,C参考答案都不对
③A)5,66B)1,66C)5,6D)A,B,C参考答案都不对【答案】①C②A③C17、下面程序的输出结果是()。
#include<stdio.h>
voidfun(int*s)
{staticintj=0;
do
{s[j]+=s[j+1];
}while(++j<2);
}
main()
{intk,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)
fun(a);
for(k=0;k<5;k++)
printf("%d",a[k]);
}
A、35756B、23445C、35745D、12345【答案】C3.3程序填空题18、下面程序的功能是根据近似公式:π2/6≈1/12+1/22+1/32+……+1/n2,求π值。
#include<math.h>
doublepi(longn)
{doubles=0.0;
longi;
for(i=1;i<=n;i++)
s=s+①;
return(②);
}【答案】①1.0/(float)(i*i)②sqrt(6*s)19、下面程序的功能是用辗转相除法求两个正整数m和n的最大公约数。
hcf(intm,intn)
{intr;
if(m<n)
{r=m;
①;
n=r;
}
r=m%n;
while(②)
{m=n;n=r;r=m%n;}
③;
}【答案】①m=n②r!=0③return(n)20、下面程序的功能是计算S=k!。#include<stdio.h>longfun(intn){inti;longs=1;for(i=1;i①;i++)s*=i;return(②);}main(){intk;longs=0;scanf("%d",&k);s=③;printf("%ld\n",s);}【答案】①<=n②s③fun(k)4数组与指针4.1基本概念1、以下为一维整型数组a的正确说明是()。A、inta(10);B、intn=10,a[n];C、intn;D、#defineSIZE10;scanf("%d",&n);inta[SIZE];inta[n];【答案】D2、以下对二维数组a的正确说明是()。A、inta[3][];B、floata(3,4);C、doublea[1][4]D、floata(3)(4);【答案】C3、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为()。(假设a[0][0]位于数组的第一个位置上。)A、i*m+jB、j*m+iC、i*m+j-1D、i*m+j+1【答案】D4、有两个字符数组a、b,则以下正确的输入语句是()。A、gets(a,b);B、scanf("%s%s",a,b);C、scanf("%s%s",&a,&b);D、gets("a"),gets("b");【答案】C5、下面程序段的运行结果是()。chara[7]="abcdef";charb[4]="ABC";strcpy(a,b);printf("%c",a[5]);A、空格B、\0C、eD、f【答案】D6、判断字符串s1是否大于字符串s2,应当使用()。A、if(s1>s2)B、if(strcmp(s1,s2))C、if(strcmp(s2,s1)>0)D、if(strcmp(s1,s2)>0)【答案】BD7、在C语言中,引用数组元素时,其数组下标的数据类型允许是()。A、整型常量
B、整型表达式
C、整型常量或整型表达式
D、任何类型的表达式【答案】C8、若有说明:inta[10];则对数组元素的正确引用是()。
A、a[10]
B、a[3,5]
C、a(5)
D、a[10-10]【答案】D9、在C语言中,一维数组的定义方式为:类型说明符数组名()。
A、[常量表达式]
B、[整型表达式]
C、[整型常量或整型表达式]
D、[整型常量]【答案】A10、以下能对一维数组a进行正确初始化的语句是()。
A、inta[10]=(0,0,0,0,0);
B、inta[10]={};
C、inta[]={0};
D、inta[10]={10*1};【答案】C11、若有以下说明,并且0≤i<10,则()是对数组元素的错误引用。inta[]={1,2,3,4,5,6,7,8,9,10},*p=a,I;A、*(a+i)B、a[p-a+i]D、p+iD、*(&a[i])【答案】D12、若有说明:inta[3][4];则对a数组元素的正确引用是()。
A、a[2][4]
B、a[1,3]
C、a[1+1][0]
D、a(2)(1)【答案】C13、若有说明:inta[3][4];则对a数组元素的非法引用是()。
A、a[0][2*1]
B、a[1][3]
C、a[4-2][0]
D、a[0][4]【答案】D14、以下能对二维数组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}};【答案】B15、若有说明:inta[3][4]={0};则下面正确的叙述是()。
A、只有数组元素a[0][0]可得到初值0
B、此说明语句不正确
C、数组a中各元素都可得到初值,但其值不一定为0
D、数组a中每个元素均可得到初值0【答案】D16、若有说明:inta[][4]={0,0};则下面不正确的叙述是()。
A、数组a中的每个元素都可得到初值0
B、二维数组a的第1维大小为1
C、因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1
D、只有数组元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0【答案】D17、若有说明:inta[3][4];则数组a中各元素()。
A、可在程序的运行阶段得到初值0
B、可在程序的编译阶段得到初值0
C、不能得到确定的初值
D、可在程序的编译或运行阶段得到初值0【答案】B18、下面程序()。(每行程序前的数字为行号)
1
main{}
2
{
3
floata[10]={0.0};
4
inti;
5
for(i=0;i<3;i++)scanf(%d",&a[i]);
6
for(i=1;i<10;i++)a[0]=a[0]+a[i];
7
printf("%f\n",a[0]);
8
}
A、没有错误
B、第3行有错误
C、第5行有错误
D、第7行有错误【答案】C19、对以下说明语句的正确理解是()。
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、因为数组与初值的个数不相同,所以此语句不正确【答案】B20、以下不正确的定义语句是()。
A、doublex[5]={2.0,4,0,6,0,8,0,10.0};
B、inty[5]={0,1,3,5,7,9};
C、charc1[]={'1','2','3','4','5'};
D、charc2[]={'\x10','\xa','\x8'};【答案】B21、若有说明:inta[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是()。
A、2
B、3
C、4
D、无确定值【答案】B22、若二维数组a有m列,则在a[i][j]前的元素个数为()。
A、j*m+i
B、i*m+j
C、i*m+j-1
D、i*m+j+1【答案】B23、定义如下变量和数组: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、357
B、369
C、159
D、147【答案】A24、若有以下程序段:
……
inta[]={4,0,2,3,1},i,j,t;
for(i=1;i<5;i++)
{t=a[i];j=i-1;
while(j>=0&&t>a[j])
{a[j+1]=a[j];j--;}
a[j+1]=t;}
……
则该程序段的功能是()。
A、对数组a进行插入排序(升序)
B、对数组a进行插入排序(降序)
C、对数组a进行选择排序(升序)
D、对数组a进行选择排序(降序)【答案】B26、对两个数组a和b进行如下初始化
chara[]="ABCDEF";
charb[]={'A','B','C','D','E','F'};
则以下叙述正确的是()。
A、a与b数组完全相同
B、a与b长度相同
C、a和b中都存放字符串
D、a数组比b数组长【答案】D27、有两个字符数组a、b,则以下正确的输入语句是()。
A、gets(a,b);
B、scanf("%s%s",a,b);
C、scanf("%s%s",&a,&b);
D、gets("a");gets("b");【答案】B28、有字符数组a[80]和b[80],则正确的输出语句是()。
A、puts(a.b);
B、printf("%s,%s",a[],b[]);
C、pitchar(a,b);
D、puts(a);puts(b);【答案】D29、下面程序的运行结果是()。
chara[7]="abcdef";
charb[4]="ABC";
strcpy(a,b);
printf("%c",a[5]);
A、
B、\0
C、e
D、f
(注:选择项A表示输出为空格)【答案】D30、有下面的程序段
chara[3],b[]="China";
a=b;
printf("%s",a);
则()。
A、运行后将输出China
B、运行后将输出Ch
C、运行后将输出Chi
D、编译时出错【答案】D31、判断字符串a和b是否相等,应当使用()。
A、if(a==b)
B、if(a=b)
C、if(strcpy(a,b))
D、if(strcmp(a,b))【答案】D32、判断字符串s1是否大于字符串s2,应当使用()。去掉,与6重复
A、if(s1>s2)
B、if(strcmp(s1,s2))
C、if(strcmp(s2,s1)>0)
D、if(strcmp(s1,s2>0))【答案】D33、设有定义:inta=1,*p=&a;floatb=2.0;charc='A';,以下不合法的运算是()。A、p++;B、a--;C、b++;D、c--;【答案】A40、设有一段程序:int*var,a;a=100;var=&a;a=*var+10;执行上面程序段后a的值为()。A.120B.110C.100D.90【答案】B41、以下程序执行后a的值为()。main(){inta,m=2,k=1,*p=&k;a=p!=&m;printf("%d\n",a);}A、-1B、0C、1D、2【答案】C42、以下对指针变量的操作中,不正确的是()。A、intp,*q;q=&p;B、int*p,*q;q=p=NULL;C、inta=5,*p;*p=a;D、inta=5,*p=&a,*q=&a;*p=*q;【答案】C43、若有语句:inta=4,*p=&a;,下面均代表地址的一组选项是()。A、a,p,&*aB、*&a,&a,*pC、&a,p,&*pD、*&p,*p,&a【答案】C44、以下判断正确的是()。A、char*s="string";等价于char*s;*s="string";B、charstr[10]={"string"};等价于charstr[10];str={"string"};C、char*s="string";等价于char*s;s="string";D、charstr[10]={"string"};等价于charstr[10];*str={"strint"};【答案】C45、以下运算正确的程序段是()。A、charstr1[]="ABCDE",str2[]="abcdef";strcpy(str1,str2);B、charstr[10],*st="abcde";strcat(str,st);C、char*st1="ABCDS",*st2="abcde";strcat(st1,st2);D、charstr[10]="",*st="abcde";strcat(str,st);【答案】D46、以下能正确进行字符串赋值操作的是()。A、chars[5]={"12345"};B、chars[5]={'1','2','3','4','5'};C、char*s;*s="12345";D、char*s="12345";【答案】D47、以下能正确读入字符串的程序段是()。A、char*p;scanf("%s",p);B、charstr[10];scanf("%s",&str);C、charstr[10],*p;p=str;scanf("%s",p);D、charstr[10],*p=str;scanf("%s",p[1]);【答案】C48、若有语句:chars1[]="Shenyang",s2[10],*s3,*s4="NEU_soft";则对库函数strcpy调用正确的是()。A、strcpy(s1,s4);B、strcpy(s2,s4);C、strcpy(s3,s1);D、strcpy(s4,s1);【答案】D49、下面程序段的运行结果是()。charstr[10]="output";printf("\"%s\"\n",str);A、outputB、"output"C、\"output\"D、编译出错【答案】B50、若有以下语句,则对x数组元素引用不正确的是()。intx[]={1,2,3,4,5,6},*ptr; ptr=x;A、*(--ptr)B、*(ptr--)C、*(ptr++)D、*(++ptr)【答案】A51、若有定义:inta[2][3];,则以下对a数组元素地址的正确表示为()。A、*(a+1)B、*(a[1]+2)C、a[1]+3D、a[0][0]【答案】A52、若有定义:inti,x[3][4];,则不能将x[1][1]的值赋给变量i的语句是()。A、i=x[1][1]B、i=*(*(x+1))C、i=*(*(x+1)+1)D、i=*(x[1]+1)【答案】B53、若有定义:intx[10],*p=x;,则*(p+5)表示()。A、数组元素x[5]的地址B、数组元素a[5]的值C、数组元素a[6]的地址D、数组元素a[6]的值【答案】B54、执行以下程序段后,y的值是()。inta[]={1,3,5,7,9}intx=0,y=1,*ptr;ptr=&a[1];while(!x){y+=*(ptr+x);x++;}A、1B、2C、4D、24【答案】C55、设有以下定义:char*ch[2]={"abc","xyz"};,则以下正确的叙述是()。A、数组ch的两个元素中分别存放了字符串"abc"和"xyz"的首地址B、数组ch的两个元素分别存放的是含有3个字符的一维字符数组的首地址C、ch是指针变量,它指向含有两个数组元素的字符型一维数组D、数组ch的两个元素的值分别是"abc"和"xyz"【答案】A56、若有说明:char*pc[]={"aaa","bbb","ccc","ddd"};,则以下叙述正确的是()。A、*pc[0]代表的是字符串"aaa"B、*pc[0]代表的是字符'a'C、pc[0]代表的是字符串"aaa"D、pc[0]代表的是字符'a'【答案】B57、以下函数Abc的功能是()。intAbc(char*ps){char*p;p=ps;while(*p++);return(p-ps);}A、计算字符串的长度B、比较两个字符串的大小C、实现字符串的复制D、以上三种说法都不对【答案】D4.2阅读程序题58、下面程序的输出结果是()。
#include<stdio.h>
main()
{intn[3][3],i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
n[i][j]=i+j;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
n[i+1][j+1]+=n[i][j];
printf("%d\n",n[i][j]);
}
A、14B、0C、6D、不确定【答案】C
59、下面程序的运行结果是()。#include<stdio.h>#include<string.h>main(){char*p1,*p2,str[50]="abc";p1="abc";p2="abc";strcpy(str+1,strcat(p1,p2));printf("%s\n",str);}A、abcabcabcB、bcabcabcC、aabcabcD、cabcabc【答案】C60、下面程序的运行结果是()。#include<stdio.h>voidselect(char*s){inti,j;char*t;t=s;for(i=0,j=0;*(t+i)!='\0';i++)if(*(t+i)>='0'&&*(t+i)<='9'){*(s+i)=*(t+i);j++}*(s+j)='\0';}main(){char*str="IBM486&586";select(str);printf("\n%s",str);}A、IBM486&586B、IBMC、486&586D、486586【答案】D61、当运行以下程序时,从键盘输入MyBook<回车>,则下面程序的运行结果是()。#include<stdio.h>charfun(char*s){if(*s<='Z'&&*s>='A')*s+=1;return*s;}main(){charc[80],*p=c;gets(c);while(*p){*p=fun(p);putchar(*p);p++;}printf("\n");}A、mZbPPkB、mybookC、NyCookD、MyBook【答案】C62、当运行以下程序时,从键盘输入:GOOD<回车>TEACH<回车>SET<回车>ROOM<回车>则程序的运行结果是___。#include<stdio.h>#include<string.h>main(){inti;charstr[10],temp[10]="Computer";for(i=0;i<4;i++){gets(str);if(strcmp(temp,str)<0)strcpy(temp,str);}puts(temp);}【答案】TEACH63、以下程序的输出结果是___。main(){intx[6],a=0,b,c=14;do{x[a]=c%2;a++;c=c/2;}while(c>=1);for(b=a-1;b>=0;b--)printf("%d",x[b]);printf("\n");}【答案】11104.3程序填空题64、下面程序的功能是读入20个整数,统计非负数个数,并计算非负数之和。#include"stdio.h"
main()
{inti,a[20],s,count;
s=count=0;
for(i=0;i<20;i++)
scanf("%d",__①__);
for(i=0;i<20;i++)
{if(a[i]<0)
__②__;
s+=a[i];
count++;
}
printf("s=%d\tcount=%d\n",s,count);
}【答案】①&a[i]②continue65、下面程序的功能是将字符串s中的每个字符按升序的规则插到数组a中,字符串a已排好序。#include<string.h>
main()
{chara[20]="cehiknqtw";
chars[]="fbla";
inti,k,j;
for(k=0;s[k]!='\0';k++)
{j=0;
while(s[k]>=a[j]&&a[j]!='\0')
j++;
for(①)
②;
a[j]=s[k];
}
puts(a);
}【答案】①i=strlen(a);i>=j;i--②a[i+1]=a[i]66、下面程序的功能是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为"abcdefg"和"abceef",则输出为-1。
#include<stdio.h>
main()
{charstr1[100],str2[100],c;
inti,s;
printf("Enterstring1:");gets(str1);
printf("Enterstring2:");gets(str2);
i=0;
while((str1[i]==str2[i]&&str1[i]!=①))i++;
s=②;
printf("%d\n",s);
}【答案】①‘\0'②str1[i]-str2[i]67、下面的函数expand在将字符串s复制到字符串t时,将其中的换行符和制表符转换为可见的转义字符表示,即用'\n'表示换行符,用'\t'表示制表符。
expand(chars[],chart[])
{inti,j;
for(i=j=0;s[i]!='\0';i++)
switch(s[i])
{case'\n':t[①]=②;
t[j++]='n';
break;
case'\t':t[③]=④;
t[j++]='t';
break;
default:t[⑤]=s[i];
break;
}
t[j]=⑥;
}【答案】①j++②‘\\'③j++④‘\\'⑤j++⑥‘\0'68、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中。请填空。main(){inta[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;printf("arraya:\n");for(i=0;i<=1;i++){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年石家庄市桥东区中小学编制教师招聘笔试模拟试题及答案详解
- 2026年马鞍山市花山区事业编单位人员招聘笔试备考题库及答案详解
- 2026年丽江地区中小学编制教师招聘考试参考试题及答案详解
- 2026年长春市南关区中小学编制教师招聘考试备考试题及答案详解
- 2026年葫芦岛市南票区事业编单位人员招聘笔试备考试题及答案详解
- 2026年济南市天桥区中小学编制教师招聘考试模拟试题及答案详解
- 2026年丹东市振兴区中小学编制教师招聘考试参考试题及答案详解
- 2026年武汉市新洲区中小学编制教师招聘考试参考题库及答案详解
- 2026年攀枝花市东区事业编单位人员招聘笔试备考题库及答案详解
- 2026年四川省广元市中小学编制教师招聘考试参考试题及答案详解
- UL498标准中文版-2019插头插座UL标准中文版
- 八年级英语教研组工作总结
- 《电脑城里的鼠精灵》说课稿
- 部编版七年级下册历史期末复习知识点提纲
- 农民工 合同模板
- PiCCO-监测技术操作管理
- DL-T5153-2014火力发电厂厂用电设计技术规程
- TCEA 0050-2023 电梯导轨型钢
- 客户之声(VOC)收集与应用
- 突发性耳聋教学查房
- 2021新苏教版小学科学四年级下册教学与实验计划
评论
0/150
提交评论