宁波工程学院2022年计算机C语言期末及答案_第1页
宁波工程学院2022年计算机C语言期末及答案_第2页
宁波工程学院2022年计算机C语言期末及答案_第3页
宁波工程学院2022年计算机C语言期末及答案_第4页
宁波工程学院2022年计算机C语言期末及答案_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2/2计算机C语言期末(总分100分,考试时长90分钟)一、理论基础(每小题1分,共10分)1、下列运算符中优先级最高的算符是________。 A、! B、% C、-= D、&&2、以下标识符中,不能作为合法的c用户定义标识符的是________。 A、putchar B、_double C、_123 D、INT3、已有定义:charc;不能用于判断c中的字符是否为大写字母的表达式是______。 A、c>='A'&&c<='Z' B、'A'<=c<='Z' C、'A'<=c&&c<='Z' D、c<=('z'-32)&&('a'-32)<=c4、c语言中,运算符>=属于 A、算术运算符 B、关系运算符 C、逻辑运算符 D、条件运算符5、在计算机中,用()位二进制码组成一个字节。 A、8 B、16 C、32 D、64.6、以下数值中,不正确的八进制数或十六进制数是________。 A、0x16 B、016 C、-16 D、0xaaaa7、已知字母a的ascii码十进制值为97,则执行以下语句后的输出为________。yhgchara='a';

a--;

printf(''%d,%c\n'',a+'2'-'0',a+'3'-'0'); A、b,c B、a-运算不合法,故有语法错 C、98,c D、格式描述和输出项不匹配,输出无定值8、以下选项中正确的整型常量是________。 A、12. B、-20 C、1,000 D、4569、如果inta=2,b=3,c=0,下列描述正确的是________。 A、a>b!=c和a>(b!=c)的执行顺序是一样的 B、!a!=(b!=c)表达式的值为1 C、a||(b=c)执行后b的值为0 D、a&&b>c的结果为假10、以下常量中,能够代表逻辑"真"值的常量是________。 A、\0' B、0 C、'0' D、NULL11、设a=5、b=6、c=10、d=8、m=2、n=5,执行(m=a>b)&&(n=c>d)后n的值为______。 A、1 B、5 C、3 D、412、以下答案中不是c语言最基本数据类型的是________。 A、逻辑型 B、整型 C、字符型 D、指针型13、设chars[10]=〞abcde〞,t[]=〞12345〞;则s和t在内存中分配的字节数分别是________。 A、6和5 B、6和6 C、10和5 D、10和614、下列引用的定义中,()是错误的。 A、inti;

int&j=i; B、inti;

int&j;

j=i; C、floati;

float&j=i; D、chard;

char&k=d;15、与十六进制数ab等值的二进数是________。 A、10101010 B、10101011 C、10111010 D、1011101116、设有intx=11;则表达式(x++*1/3)的值是________。 A、3 B、4 C、11 D、1217、未指定存储类别的变量,其隐含的存储类别为________。 A、auto B、static C、extern D、register18、表达式"~0x11"的值是________。 A、0xFFEE B、0x71 C、0x0071 D、0xFFEl19、有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是________。 A、*P+9 B、*(P+8) C、*P+=9 D、P+820、指针x指向的整型变量值为25,则”printf(“%d\n”,++*x);”

的输出是____ A、23 B、24 C、25 D、26二、控制结构(每小题1分,共10分)1、在c程序中,判断逻辑值时,分别用()表示逻辑值"真"、"假"。 A、非00 B、01 C、非0非0 D、112、a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是()。 A、a*b/a*b==1 B、a/b*b/a==1 C、a/b*b+a%b==a D、a/b*b==a3、有以下定义语句:doublea,b;intw;longc;若各变量已正确赋值,则下列选项中正确的表达式是________。 A、a=a+b=b++ B、w%((int)a+b) C、(c+w)%(int)a D、w=a==b4、设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句:if(a<b)if(c==d)y=0;elsey=1;该语句所表示的含义是________。 A、y=0,a B、y=0,a

y=1,a≥by一1,a≥b且c≠d C、y=0,a D、y=0,a

y=1,a<B且C≠Dy="1,c≠d5、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是________。 A、1 B、0 C、2 D、不知道a的值,不能确定6、若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是________。 A、switch(x){

case1.0:printf("*\n");

case2.0:printf("**\n");

} B、switch((int)x);{

case1:printf("*\n");

case2:printf("**\n");

} C、switch(a+b){

case1:printf("*\n");

case2+1:printf("**\n");

} D、switch(a+b){

case1:printf("*\n");

casec:printf("**\n");

}7、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。 A、if(x++); B、if(x>y&&y!=0); C、if(x>0)x-- D、if(y<0){;}8、下列程序的输出结果是________。

main()

{

inta=0,i;

for(i=1;i<5;i++)

{

switch(i)

{

case0:case3:a+=1;

case1;

case2:a+=2;

default:a+=3;

}

}

printf("%d",a);

} A、19 B、1 C、6 D、89、在c的if语句中,可用作条件的表达式是________。 A、关系表达式 B、逻辑表达式 C、算术表达式 D、任意表达式10、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。 A、if(x++); B、if(x>y&&y!=0); C、if(x>0)x-elsey++; D、if(y<0){;}elsex++;三、循环结构(每小题1分,共10分)1、运行下面程序时,从键盘输入字母a,则输出结果是________。

#include<stdio.h>

main()

{

charch;

ch=getchar();

switch(ch)

{

case'a':printf("aaaa\n");

case'b':printf("bbbb\n");

default:printf("cccc\n");

}

} A、AAAA B、AAAABBBB C、AAAABBBBCCCC D、AAAACCCC2、下列while循环的次数是________。while(inti=0)i--; A、0 B、1 C、5 D、无限3、以下不构成无限循环的语句或语句组是______。 A、n=0;

do

++n;

while(n<=0); B、n=0;

while(1)

n++; C、n=10;

while(n);

n--; D、for(n=0,i=1;;i++)

n+=i;4、以下选项中哪些描述是不正确的? A、循环语句必须要有终止条件否则不能编译 B、break关键字用于跳出当前循环 C、continue用于终止本次循环,执行下一次循环 D、switch条件语句中可以使用break5、以下程序运行后的输出结果是________。

#include<stdio.h>

main()

{

ints=0,k;

for(k=7;k>=0;k--)

{

switch(k)

{

case1:case4:case7:s++;

break;

case2:case3:case6:break;

case0:case5:s+=2;

break;

}

}

printf("s=%d\n",s);

} A、s=5 B、s=1 C、s=3 D、s=76、若有程序段:x=99;while(x-2)x--;则循环结束时,x=________。 A、99 B、2 C、1 D、07、执行下面程序片段的结果是______。intx=23;

do

{

printf("%2d",x--);

}

while(!x); A、打印出321 B、打印出23 C、不打印任何内容 D、陷入死循环8、有以下程序

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,49、程序设计语言中________。 A、while循环语句的执行效率比do-while循环语句的执行效率高 B、while循环语句的循环体执行次数比循环条件的判断次数多1,而do-while语句的循环体执行次数比循环条件的判断次数少1 C、while语句的循环体执行次数比循环条件的判断次数少1,而do-while语句的循环体执行次数比循环条件的判断次数多1 D、while语句的循环体执行次数比循环条件的判断次数少1,而do-while语句的循环体执行次数等于循环条件的判断次数10、以下程序中,while循环的循环次数是

main()

{

inti=0;

while(i<10)

{

if(i<1)continue;

if(i==5)break;

i++;

}

} A、1 B、10 C、6 D、死循环,不能确定次数四、数组/指针数组(每小题1分,共10分)1、在c语言中,一维数组的定义方式为:类型说明符数组名____ A、[常量表达式] B、[整型表达式] C、[整型常量]或[整型表达式] D、[整型常量]2、已知英文字母a的十进制ascii码值为65,那么a的十进制ascii码值为______。 A、98 B、100 C、89 D、973、对两个数组a和b进行下列初始化:charm[]="1234567";charn[]={'1','2’,'3','4','5','6','7'};则下列叙述正确的是________。 A、数组in与数组n完全相同 B、数组m与数组n长度相同 C、数组m比数组n长1 D、数组m与数组n中都存放字符串4、设有以下定义:inta[3][3]={1,2,3,4,5,6,7,8,9};int(*ptr)[3]=a;则下列能正确表示数组元素a[1][2]的表达式是______。 A、*((*ptr+1)[2]) B、a[2][3] C、(*ptr+1)+2 D、*(*(a+1)+2)5、设charstr[100];inti=5;则引用数组元素的错误形式的是________。 A、str[I+10] B、*(srr+ C、(str+I-1) D、*(&(str++)+6、要定义整型数组x,使之包括初值为0的三个元素,下列语句中错误的是________。 A、intx[3]=0,0,0; B、intx[]=0; C、staticintx[3]=0; D、intx[]=7、若有inta[10],*p=a;

,且a数组已赋值,则与a[4]不等价的表达式为________。 A、p+4 B、*(p+4) C、*(a+4) D、p[4]8、以下能正确定义数组并正确赋初值的选项是______。 A、intN=5,a[N][N]; B、intb[1][2]={{1},{2}}; C、intc[2][]={{1,2},{3,4}}; D、intd[3][2]={{1,2},{3,4}};9、在以下定义中,标识符p________。int(*p)[3]; A、定义不合法 B、是一个指针数组名,每个元素是一个指向整数变量的指针 C、是一个指针,它指向一个具有三个元素的一维数组 D、是一个指向整型变量的指针10、关于数组的定义与初始化,下列哪一项是错误的() A、intarr[5]={1,2,3,4,5}; B、intarr[]={1,2,3,4,5}; C、intarr[5]={1,2,3}; D、intarr[5]={1,2,3,4,5,6};五、字符串/字符串指针(每小题1分,共10分)1、在下列各项中,运算级别最低的为________。 A、算术运算符 B、关系运算符 C、逻辑运算符 D、圆括号()2、从键盘上输入某字符串时,不可使用的函数是()。 A、getchar() B、gets() C、scanf() D、fread()3、下列类型的数据不可以存储在可变型变量中的是________。 A、整型 B、字节型 C、单精度型 D、日期型4、在c语言中,以作为字符串结束标志 A、’\n’ B、’’ C、’0’ D、’\0’5、下列哪个是c语言的有效标识符 A、_Nol B、No.1 C、12345 D、int6、下面选项中合法的字符常量是________。 A、"X" B、'X' C、'abc' D、'\'7、下列变量定义中,错误的是______。 A、intx=3; B、floatf;d; C、Strings="Hello!"; D、booleanb=true;8、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是()。 A、c=*p1+*p2; B、p2=c; C、p1=p2; D、c=*p1*(*p2);9、以下叙述中不正确的是________。 A、空字符串(即两个双引号连写)只占一个存储单元 B、字符型常量可以放在字符型变量中 C、字符型常量可以放在字符串变量中 D、字符型常量可以与整数混合运算,而字符串常量不可以10、下列能正确进行字符串赋值的是________。 A、chars[5]={“ABCDE”); B、chars[5]={'A','B','C','D','E'}; C、char*s;s=”ABCDE”; D、char*s;printf(”%S”,s);六、函数/函数指针(每小题1分,共10分)1、下列关于c语言的说法错误的是________。 A、C程序的工作过程是编辑、编译、连接、运行 B、C语言不区分大小写。 C、C程序的三种基本结构是顺序、选择、循环 D、C程序从main函数开始执行2、有以下函数:fun(char*a,char*b)

{

while((*a!='\0')&&(*b!='\0')&&(*a==*b))

{

a++;

b++;

}

return(*a-*b);

}

该函数的功能是______。 A、计算a和b所指字符串的长度之差 B、将b所指字符串连接到a所指字符串中 C、将b所指字符串连接到a所指字符串后面 D、比较a和b所指字符串的大小3、已有定义int(*p)();指针p可以。 A、代表函数的返回值 B、指向函数的入口地址 C、表示函数的类型 D、表示函数返回值的类型4、以下叙述中正确的是______。 A、全局变量的作用域一定比局部变量的作用域范围大 B、静态(static)类别变量的生存期贯穿于整个程序的运行期间 C、函数的形参都属于全局变量 D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值5、已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是______。 A、p=max; B、*p=max; C、p=max(a,b); D、*p=max(a,b);6、阅读以下函数fun(char*sl,char*s2)

{

inti=0;

while(sl[i]==s2[i]&&s2[i]!='\0')i++;

return(sl[i]=='\0'&&s2[i]=='\0');

}

此函数的功能是______。 A、将s2所指字符串赋给s1 B、比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0 C、比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0 D、比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为07、设c1,c2均是char类型变量,则不正确的函数调用为______。 A、printf("%c,%c,",c1,c2) B、getchar(c1) C、putchar('\') D、putchar(c1)8、调用函数时,当实参和形参都是简单变量时,它们之间数据传递的过程是__________. A、实参将其地址传递给形参,并释放原先占用的存储单元 B、实参将其地址传递给形参,调用结束时形参再将其地址回传给实参 C、实参将其值传递给形参,调用结束时形参再将其值回传给实参 D、实参将其值传递给形参,调用结束时形参并不将其值回传给实参9、设有如下函数定义:若执行调用语句:n=fun(3);则函数fun总被调用次数为________。 A、2 B、3 C、4 D、510、以下程序的运行结果是________。

#include<stdio.h>

#defineMIN(x,y)(x)<(y)?(x):(y)

main(){

inti=10,j=15,k;

k=10*MIN(i,j);

printf("%d\n",k);

} A、10 B、15 C、100 D、150七、指针(每小题1分,共10分)1、以下关于数组的描述正确的是______。 A、数组的大小是固定的,但可以有不同的类型的数组元素。 B、数组的大小是可变的,但所有数组元素的类型必须相同。 C、数组的大小是固定的,但所有数组元素的类型必须相同。 D、数组的大小是可变的,但可以有不同的类型的数组元素。2、以下不正确的定义语句是________。 A、doublex[5]=1.0,2.0,3.0,4.0,5.0; B、inty[5]=0,1,2,3,4,5; C、charc1[]='1','2','3','4','5'; D、charc2[]='a','b','c';3、在c语言中,调用函数除函数名外,还必须有________。 A、函数预说明 B、实际参数 C、() D、函数返回值4、下列数据中属于"字符串常量"的是________。 A、ABC B、"ABC" C、'ABC' D、'A'5、若有数组名作为函数调用的实参,传递给形参的是________。 A、数组的首地址 B、数组第一个元素的值 C、数组中全部元素的值 D、数组元素的个数6、以下定义:int(*p)[4]中,标识符p是________。 A、一个指向整型变量的指针 B、一个指针数组名 C、一个指针,它指向一个含有4个整型元素的一维数组 D、说明不合法7、以下正确的函数头定义形式是________。 A、doublefun(intx,inty) B、doublefun(intx;inty) C、doublefun(intx,inty); D、doublefun(intx,y);8、char*match(charc)是()。 A、函数定义的头部 B、函数预说明 C、函数调用 D、指针变量说明9、有以下程序段:charc1,c2,c3;scanf("%c%c%c",&c1,&c2,&c3);若要给c1、c2、c3分别输入字母abc,则以下对输入形式的描述正确的是________。 A、字母ABC之间可以用空格分隔 B、字母ABC之间不能有分隔符 C、字母ABC之间可以用回车符分隔 D、字母ABC之间可以用Tab键分隔10、以下函数调用语句中实参的个数是()。

func((e1,e2),(e3,e4,e5)); A、2 B、3 C、5 D、语法错误八、结构体(每小题1分,共10分)1、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是________。

structnode

{

chardata;

structnode*next;

}

a,b,*p=&a,*q=&b; A、3475 B、3574 C、1234 D、12352、以下程序运行后的输出结果是

#include<stdio.h>

structst

{

intx,y;

}data[2]={{1,10},{2,20}};

main()

{

structst*p=data;

printf("%d,",p->y);

printf("%d\n",(++p)->x);

} A、10,1 B、20,1 C、10,2 D、20,23、设有如下说明

typedefstructst

{

longa;

intb;

charc[2];

}

new;

则下面叙述中正确的是______。 A、以上的说明形式非法 B、ST是一个结构体类型 C、NEW是一个结构体类型 D、NEW是一个结构体变量4、有以下程序

#include<stdio.h>

structtt

{

intx;

structtt*y;

}

*p;

structtta[4]={20,a+1,15,a+2,30,a+3,17,a};

main()

{

inti;

p=a;

for(i=1;i<=2,i++)

{

printf("%d,",p->x);

p=p->y;

}

}

程序的运行结果是________。 A、20,30, B、30,17 C、15,30, D、20,155、c语言中用于定义类的关键字是________。 A、class B、struct C、default D、sizeof6、以下叙述中正确的是________。 A、即使是同类型的结构体变量,也不能进行整体赋值 B、结构体变量的地址不能作为实参传给函数 C、结构体数组名不能作为实参传给函数 D、结构体中可以含有指向本结构体的指针成员7、以下程序的输出结果是

#include<stdio.h>

structst

{

intx;

int*y;

}

*p;

intdt[4]={10,20,30,40};

structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};

main()

{

p=aa;

printf("%d\n",++(p->x));

} A、10 B、11 C、51 D、608、以下关于c语言数据类型使用的叙述中错误的是________。 A、若只处理“真”和“假”两种逻辑值,应使用逻辑类型 B、若要保存带有多位小数的数据,可使用双精度类型 C、整数类型表示的自然数是准确无误差的 D、若要处理“人员信息”等含有不同类型的相关数据,应自定义结构体类型9、有以下程序

structstu

{

charnum[10];

floatscore[3];

}

;

main()

{

structstus[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p;

inti;

floatsum=0;

p=s+1;

for(i=0;i<3;i++)sum=sum+p->score[i];

printf("%.3f\n",sum);

}

程序运行后的输出结果是___________。 A、250.000 B、250 C、270.000 D、27010、以下对c语言中共用体类型数据的叙述正确的是______。 A、可以对共用体变量名直接赋值 B、一个共用体变量中可以同时存放其所有成员 C、一个共用体变量中不可以同时存放其所有成员 D、共用体类型定义中不能出现结构体类型的成员九、程序题(每小题1分,共10分)1、有以下程序

main(){

inti,j,m=55;

for(i=l;i<3;i++)for(j=3;j<=++)m=m%j;

printf("%d\n",m);

}

程序的运行结果是________。 A、0 B、1 C、2 D、32、有以下程序

#include<stdio.h>

main()

{

inta=1,b=0;

printf("%d,",b=a+b);

printf("%d",a=2*b);

}

程序运行后的输出结果是________。 A、0,0 B、1,0 C、3,2 D、1,23、以下程序的输出结果是______。

#defineSQR(X)X*X

main()

{

intA,k=2,m=1;

A=SQR(k+m)/SQR(k+m);

printf("%d\n",a);

} A、1 B、7 C、9 D、34、有以下程序:

main()

{

charx[]="string";

x[0]=0;

x[1]='\0';

x[2]='0';

printf("%d%d\n",sizeof(x),strlen(x));

}

程序运行后的输出结果是________。 A、61 B、70 C、63 D、715、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是

main()

{

chars[100];

intc,i;

scanf("%c",&c);

scanf("%d",&i);

scanf("%s",s);

printf("%c,%d,%s\n",c,i,s);

} A、123,456,789 B、1,456,789 C、1,23,456,789 D、1,23,4566、有以下程序

main()

{

char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};

printf("%d\n",strlen(p[4]));

}

执行后输出结果是________。 A、2 B、3 C、4 D、57、有以下程序

main()

{

intx=011;

printf("%d\n",++x);

}

程序运行后的输出结果是________。 A、12 B、11 C、10 D、98、若希望下面的程序运行后输出45,程序空白处的正确选择是__________.

#include<stdio.h>

voidmain()

{

inti,j=10,a[]={1,3,5,7,9,11,13,15};

for(____________)j+=a[i];

printf("%d\n",j);

} A、i=5;i>1;i-- B、i=0;i<7;++i C、i=5;i>=1;--i D、i=2;i<6;++i9、下面程序的输出结果是__________.

#include<stdio.h>

voidmain()

{

intx=8,y=-7,z=9;

if(x<y)if(y<0)z=0;

elsez-=1;

printf("%d\n",z);

} A、8 B、1 C、9 D、010、阅读以下程序:

main()

{

intx;

for(x=5;x>0;x--)if(x--<5)printf("%d,",x);

elseprintf("%d,",x++);

}

程序运行后的输出结果是________。 A、4,3,2 B、4,3,1, C、5,4,2 D、5,3,1,

参考答案一、理论基础1、A2、A3、B4、B5、A【解析】在计算机中,8位二进制码组成一个字节。6、C7、C8、B9、B10、C11、B12、A13、D14、B15、B【解析】本题考查十六进制与二进制的转化,每位十六进制数正好对应4位二进制数,不足4位的高应补0。本题中数A对应1010,数B对应l0ll,故转换过程为AB→10101011。16、A【解析】当自加运算符做后缀表达式的时候,表达式的值不变,只有变量的值增加1,所以表达式(x++*1/3)相当于(11*1/3),取整后为3。17、A18、A19、B20、D二、控制结构1、A【解析】在C程序中,判断逻辑值时,用非0表示“真”,用0表示“假”。计算逻辑表达式时,逻辑表达式的值为“真”是用1表示的,若逻辑表达式的值为“假”,则用0表示。2、C3、C【解析】选项A不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=a+(b=b++)才正确,故选项A不正确。选项B中运算符%的对象必须是整型,而在选项B中(int)a+b为double型,故选项B不正确。a,b都为double型,应当避免使用a==b这样的关系表达式,因为通常存放在内存中的实型数据是有误差的,因此不可能精确相等,这将导致关系表达式a==b总为0。所以,4个选项中选项C符合题意。4、C5、A6、C【解析】在C语言中,switch()后的一对圆括号中可以是整型表达式或字符表达式。case语句后面的常量表达式的类型必须与switch后圆括号中的表达式类型相同,备case语句标号的值应该互不相同。选项A)中case后面的常量表达式为实型,所以不正确;选项D)中case后面出现了变量表达式,所以选项D)错误。7、C【解析】elsey++;elsex++;

本题考查的是if语句。if后表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。选项A和B是在表达式后跟了一条空语句,选项D是在表达式后跟了一组空语句,选项C中x--是表达式而不是语句,所以在编译时会出现错误信息。故本题答案选C。8、A9、D10、C【解析】C语言规定,在“if(表达式)语句1;else语句2;”这种形式的if语句中,在每一个else前面有一个分号,整个语句结束处有一分号。在本题的C)选项中,else前面少了一个分号,这样程序在编译时,会出现语法错误。三、循环结构1、C【解析】本题考查switch语句。因为ch=A,所以第一个switch语句,执行ease'A'后面的语句,输出AAAA,没有遇到break语句,所以接着再执行case'B'和default,分别输出BBBB和CCCC。2、A3、A【解析】while(1),条件永远为真,是无限循环;while(n);循环体为空语句,是无限循环;for循环中两个分号之间为循环执行条件,如果省略,则为条件永远成立,为无限循环;所以答案选择A。4、A5、D6、B7、B8、C9、D10、D四、数组/指针数组1、D2、D【解析】在ASCII码表中,大、小写英文字母是分组排序安排在不同位置的,并且小写英文字母的码值比对应的大写英文字母的码值大32。所以,当知道A的ASCII码值是65后,字符a的码值为65+32=97。3、C4、D【解析】指针变量ptr是指向长度为3的整型一维数组,当ptr指向二维数组a时,ptr每移动一个单位将指向数组的下一行,*(*(a+1)+2)表示数组元素a[1][2],*(*(ptr+1)+2)也可以。5、D6、D【解析】选项D中整型数组x的第一个元素是NULL不是0,故选D。7、A【解析】请仔细阅读交规难度:简单8、D【解析】数组维数必须为常量;B.b[1][2]数组为一行两列,而两行一列;数组定义错误,数组定义时列数必须写明,而行数可以缺省;D.表示正确,相当于{{1,2},{3,4},{0,0}}9、C10、D【解析】选项4初始化值大于数组的大小。五、字符串/字符串指针1、C【解析】如果在同一个表达式中出现不同的运算符,其优先顺序为:先执行算术运算、字符串运算和日期时间运算,其次执行关系运算,最后执行逻辑运算。如果在表达式中包含圆括号,首先应该计算出圆括号中的结果,其优先级最高。2、A3、B【解析】本题考查可变型变量。可变型变量可以存储9种类型的数据:空、NULL型、整型、长整型、单精度型、双精度型、货币型、日期型和字符串型。选项A错误,整型数据可以存储在可变型变量中;选项B正确,字节型数据不可以存储在可变型变量中;选项C错误,单精度型数据可以存储在可变型变量中;选项D错误,日期型数据可以存储在可变型变量中。答案为B。4、D5、A【解析】标识符是一个以字母或下划线开始的,由字母、下划线和数字组成的字符串,标识符不能与任意关键字同名。6、B【解析】字符常量是用单引号括起来的一个字符。A选项中,使用双引号,所以是错误的;C选项中,abc是字符串,字符常量只能是单个字符,不能是字符串;D选项中,以反斜线"开头的是转义字符。因此B选项正确。7、B【解析】A选项定义了一个整型;C选项定义了一个字符串;D选项定义了一个布尔型变量:B选项中的f;d不符合标识符规范,因而选B。8、B9、C10、C六、函数/函数指针1、B2、D【解析】字符串的比较规则是对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止,相等,则返回0,否则返回第一个不等字符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论