A.1010&&a<15D.!
(a<=10)&&!
(a>=15)
⒀在以下一组运行符中,优先级最高的是C。
A.<=B.=C.%D.&&
⒁在以下运算符中,优先级最高的运算符是B。
A.<=B./C.!
=D.&&
⒂假设所有变量均为整形,表达式(a=2,b=5,a>b?
a++:
b++,a+b)的值是B。
A.7B.8C.9D.2
⒃在以下运算符中,优先级最高的运算符是A。
A.!
B.=C.+D.‖
⒄执行下列程序段后,变量的正确结果,供选择的答案是D。
A.10B.11C.12D.13
inti=10,j=0;
do{switch(i)
{case9:
i++;
case10:
i++;
case11:
i++;
defaut:
i++;}
}while(j);
⒅以下程序执行C次。
A.5B.6C.8D.9
#include“stdio.h”
#defineN2
#defineMN+1
#defineNUM(M+1)*M/2
main()
{inti,n=0;
for(i=1;i<=NUM;i++){n++;printf(“%d”,n);}
printf(“\n”);}
⒆对两个静态数组A和B进行如下初始化:
staticcharA[]=“ABCDEF”;
staticcharB[]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};
则下列叙述正确的是D。
A.A和B完全相同B.A和B只是长度相同C.A数组长度比B数组短D.A数组长度比B数组长
⒇下列对C语言字符数组的描述中错误的是C。
A.字符数组可以存放字符串B。
字符数组中的字符串可以整体输入、输出
C。
可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D。
不可以用关系运算符对字符数组中的字符串进行比较
⑴不能把字符串:
Hello!
赋给数组b的语句是B。
A.charb[10]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!
’,‘\0’};B。
charb[10];b=“Hello!
”;
C。
charb[10];strcpy(b,“Hello!
”);D。
charb[10]=“Hello!
”;
⑵若有以下说明:
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc=‘a’,d,g;
则数值为4的表达式是D。
A.a[g-c]B.a[4]C.a[‘d’-‘c’]D.a[‘d’-c]
⑶合法的数组定义是B。
A.inta[]=“string”B.inta[5]={1,2,3,4,5}C.chara=“string”D.chara[]={1,2,3,4,5}
⑷若有定义和语句:
staticchars1[]=“abcd”;
chars2[10];s2=s1;
printf(“%s\n”,s2);
则结果是(以下□代表空格)D。
A.输出abcdB.输出aC.输出abcd□□□□D.编译不通过
⑸以下程序段给数组所有元素输入数据,应在下划线处填入的是B。
A.a+(++i)B.&a[i++]C.a+iD.&a[++i]
main()
{inta[10],i=0;
while(i<10)scanf(“%d”,);
……;}
⑹变量的指针,其含义为指该变量的B。
A.值B.地址C.名D.一个标志
⑺设ptr1和ptr2均为指向同一个int型一维数组的指针变量,k为int型变量,则下面不能正确执行的赋值语句是B。
A.k=*ptr1+*ptr2;B.ptr2=k;C.ptr1=ptr2;D.k=*ptr1*(*ptr2);
⑻设char*s=“\ta\017bc”,则指针变量s指向的字符串所占的字节数是C。
A.9B.5C.6D.7
⑼以下程序有错,错误原因是D。
main()
{int*p,i;char*q,ch;
p=&i;q=&ch;*p=40;*p=*q;
……;}
A.p和q的类型不一致,不能执行*p=*q;语句B。
*q中存放的是地址值,因此不能执行*p=40;语句
C。
q无具体指向,所以*q无实际意义D。
q虽然指向了具体的存储单元,但该单元无确定值,故不能执行*p=*q
⑽有四组对指针变量操作的语句,以下判断正确的是D。
①int*p,*q;q=p;inta,*p,*q;p=q=&a②inta,*p,*q;q=&a;p=*q;inta=20,*p;*p=a
③inta=b=0,*p;p=&a;b=*p;inta=20,*p,*q=&a;*p=*q;④inta=20,*p,*q=&a;p=q;a=*p;
A.正确:
①不正确②③④B.正确:
①④不正确②③C.正确:
③不正确①②④D.正确:
④不正确①②③
⑾设程序段chars[]=“china”;char*p;p=s;则下列叙述正确的是CD。
A.s和p完全相等B。
数组s中的内容和指针变量p中的内容完全相等
C.s数组长度和p所指向的字符串长度完全相等Ds[0]和*p相等
⑿若a、b,、c均为int型变量,则执行以下语句后的a、c值分别为(B)。
a=b=c=-1;++a||++b&&++c;
A)不正确B)0和-1C)0和0D)-1和0
⒀若a、b均为int型变量且a=100,则以下关于for循环语句的正确判断为(A)。
for(b=100;a!
=b;++a,++b)printf(“--------”);
A)循环体一次也不执行B)死循环C)循环体只执行一次D)输出--------
⒁一个C程序总是从(A)开始执行的。
A)主函数B)主过程C)子函数D)子过程
⒂在C语言中,int、char和short三种类型数据所占用的内存(C)。
A)均为两个字节B)均由用户自己定义C)由所用机器的机器字长决定D)是任意的
⒃以下哪一个不是正确的转义符(B)。
A)‘\\’B)‘\’C)‘108’D)‘\0’
⒄以下关于switch语句和break语句的描述中,只有(C)是正确的。
A)在switch语句中必须使用break语句B。
break语句只能用于switch语句
C。
在switch语句中可以根据需要使用或不使用break语句D。
break语句是switch语句的一部分
⒅为了判断两个字符串s1和s2是否相等,应当使用(D)。
A)if(s1==s2)B)if(s1=s2)C)if(strcpy(s1,s2))D)if(strcmp(s1,s2)==0)
⒅函数定义的缺省类型为C。
A.voidB.doubleC.intD.char
⒆在C语言程序中,说法正确的是B。
A.函数的定义可以嵌套,但函数的调用不可以嵌套B。
函数的定义可以不嵌套,但函数的调用可以嵌套
C。
函数的定义和函数的调用都不可以嵌套D。
函数的定义和函数的调用都可以嵌套
⒇C语言规定,函数返回值的类型是由D。
A.return语句中的表达式类型所决定B。
调用该函数时的主调函数所决定
C。
调用该函数时系统临时决定D.在定义该函数时所指定的函数类型所决定
1、一个C语言程序是由[A]组成。
A、主程序 B、子程序 C、函数 D、过程
2、下面标识符中,不合法的用户标识符为[D]。
A、PAd B、a_10C、CHAR D、a#b
3、在C语言中,int、char和short三种类型数据所占用的内存[C]。
A、均为2个字节 B、由用户自己定义 C、由所用机器的机器字长决定 D、是任意的
4、若w=1,x=2,y=3,z=4,则条件表达式ww:
yy:
z的结束为[D]。
A、4 B、3 C、2 D1
5、设x和y均为int型变量,则执行以下语句后的输出为[A]。
A、0 B、1 C、6 D、12
x=15;y=5;
Printf(“%d\n”,x%=(y%=2));
6、下列程序正确的运行结果为[B]。
A、9.800000B、9.300000 C、8.500000 D、8.000000
#include
main()
{inta=1,b=4,c=2;
floatx=5.5,y=9.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf(“%f\n”,z)}
7、运行下面程序后的w值为[A]。
A、20 B、7 C、28 D、13
main()
{intw=2,k;
for(k=0;k<3;k++)
{w=f(w);
printf(“%d\n”,w);}
f(x)
intx;
{inty=0;
staticz=3;
y++;z++;
return(x+y+z);}
8、若有说明语句inti,j,且i的值为6,执行语句j=(++i)+(i++)后,j的值是[B]。
A、4 B、14 C、13 D、15
9、若a、b为int型变量,则执行以下语句后,a,b的值为[]。
A、2,9 B、4,2 C、3,-1 D、2、8
a=1;b=10;
do{b-=a;
a++;
}while(b--<0);
10、若a为int型变量,则执行以下语句后的结果为[A]。
A、5 B、不打印任何内容 C、4 D、陷入死循环
a=5;
do{printf(“%2d\n”,a--);
}while(!
a);
11、若x、y的int型变量,则执行以下语句后的x,y值是[A]。
A、10,6 B、6,4 C、7,8 D、10,2
for(y=1,x=1;y<=50;y++)
{if(x>=10)break;
if(x%2==1)
{x+=5;
continue;}
x-=3;}
12、下列程序正确的运行结果为[B]。
A、8,20 B、8,8 C、8,17 D、8,16
#include
main()
{intj=4,m=1,k;
k=fun(j,m);
printf(“%d\n”,k);}
fun(x,y)
intx,y;
{staticintm=0,i=2;
i+=m+1;
m=i+x+y;
return(m);}
13、下列程序正确的运行结果为[A]。
A、12,2 B、5,20 C、2,12 D、不确定
#include
intx,y;
num()
{inta=15,b=10;
intx,y;
x=a-b;
y=a+b;
retrun;}
main()
{inta=7,b=5;
x=a+b;
y=a-b;
num();
printf(“%d,%d\n”,x,y);}
⒁C语言规定,简单变量做实参时,它和形参之间的数据传递方式是D。
A.地址传递B.单向值传递C.有实参传给形参,再由形参传回给实参D.由用户指定传递方式
⒂若用数组名作为函数调用的实参,传递给形参的是A。
A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数
⒃如果函数的类型和return语句中表达式的值的类型不一致,则A。
A.返回值的类型以函数类型为准B.返回值的类型不能确定
C.返回值的类型以return语句中表达式的类型为准D.编译不通过
⒄如果在一个函数中的复合语句中定义了一个变量,则该变量A。
A.指在该复合语句中有效B.在该函数中有效C.在本程序范围内均有效D.为非法变量
⒅以下不正确的描述为(B)。
A)在函数之外定义的变量为外部变量,外部变量是全局变量
B)在一个函数中既可以使用本函数中的局部变量,又可以使用别的函数中的局部变量
C)外部变量定义和外部变量说明的含义不同
D)同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。
⒆下面写法错误的数字是(A)。
A)123E3B)4.3-6EC)E7D)2.9+3e
⒇已知x=’P’,y=’A’,P与A的ASCII码值分别为80和64,则表达式a=x>y?
‘a’:
1.5的值是(B)。
A)1.5B)97C)TD)97.0
1.面向算法的计算机语言是(B)A.可视化语言B.高级语言C.汇编语言D.机器语言
2.以下运算符使用错误的是(B)A.--kB.(a+b)--C.++jD.i++
3.关于C语言程序的正确叙述是(D)
A.main()所在行的末尾必须要有分号(;)B.主函数的函数体不一定用花括号({})括起来
C.一个完整的C程序可以没有任何函数D.C语言程序的简单语句必须用分号(;)作为语句的结束符
4.已知:
inti=5,a;当a=i++;语句执行后,变量i和a的值分别是(C)A.55B.56C.65D.66
5.用C语言表示算式
,错误的表达式是(C)A.a/(c*d)*bB.a*b/c/dC.a*b/c*dD.a*b/(c*d)
6.下列程序的运行结果是(C)A.0B.1C.3D.3.3
#include
main()
{intx=10,y=3;
printf("%d\n",y=x/y);}
7.下列程序的运行结果是(A)A.18B.19C.22D.23
#include
main()
{intx=023;
printf("%d\n",--x);}
8.C语言中,关于scanf()函数正确的叙述是(A)
A.利用scanf()函数可以给变量提供数据B.scanf()函数具有计算功能C.scanf()函数就是输入语句D.scanf()函数只能用在主函数中
9.C语言中,已知a的ASCII码为97,A的ASCII码为65。
又已知,int,c;chari;scanf("%c,%d",&c,&i);语句执行后,若要使c的值为101,i的值为正确的数据输入为(注:
↙为回车符号)(C)A.101,68↙B.101,D↙C.e,68↙D.e,D↙
10.已知:
intx=100,y;y=x>80?
60:
70;
则y的值是(A)A.60B.70C.80D.100
11.C语言中,已知intb=2;则下列表达式值为1的是(A)A.b>1B.b>bC.b<1D.!
(b=1)
12.C语言中,下列语句运算符的执行次序是(C)x=!
a==b;
A.先执行=,再执行!
,再执行==B.先执行==,再执行!
,再执行=C.先执行!
,再执行==,再执行=D.执行次序是随机的
13.下列程序的功能是(B)
#include
main()
{charc;
c=getchar();
if(c>='a'&&c<='z')c=c-32;
putchar(c);}
A.将大写字母转换成小写字母B.将小写字母转换成大写字母C.将大小写字母互换D.以上均错误
14.C语言中,关于while与do-while语句正确的叙述是(D)
A.允许从do-while外部转到循环体内B.do-while的循环体不能是复合语句
C.while的循环控制条件比do-while的循环控制条件严格D.do-while的循环体至少无条件执行一次
15.下列程序段执行后,k的值是(C)A.9B.10C.11D.不定
intk=1;while(k++<10);
16.下列C语言程序运行时输入2473↙,则输出结果是(B)A.668966B.668977C.6677877D.6688766
(注:
↙为回车符号)
#include
main()
{intcx;
while((cx=getchar())!
='\n')
{switch(cx-'2')
{case0:
case1:
putchar(cx+4);
case2:
putchar(cx+4);break;
case3:
putchar(cx+3);
default:
putchar(cx+2);}}}
17.下列程序的运行结果是(C)A.x=4B.x=6C.x=8D.x=12
#include
main()
{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);}
18.已知:
inti=5,s;则s=i--;等价于(A)A.s=i;i=i-1;B.i=i-1;s=i;C.s=i;s=s-1D.s=i;s=i-1;
19.C语言中关于数组的正确叙述是(C)
A.数组名代表数组中的全部元素B.若有定义inta[10],说明该数组元素的最大下标是10
C.定义数组时可以同时初始化该数组D.初始化数组时必须使所赋初值的个数与数组长度相等
20.已知:
主函数中,inta[3]={4};数组元素a[1]的值是(A)A.0B.1C.4D.不确定
21.下列程序的运行结果是(B)A.EB.FC.EFGHD.FGH
#include
main()
{char*b="ABCDEFGH";
printf("%c",b[5]);}
22.下列程序的运行结果是(B)A.44B.8C.95D.以上结果均不正确
#include
intd=1;
fun(p)
intp;
{intd=5;
d+=p++;
printf("%d",d);}
main()
{inta=3;
fun(a);
d+=a++;
printf("%d\n",d);}
23.函数strcat(strcpy(str1,str2),str3)的功能是(C)
A.将串str1复制到串str2中后,再连接到串str3后B.将串str1连接到串str2中后,再复制到串str3后
C.将串str2复制到串str1中后,再将str3连接到串str1之后D.将串str2复制到串str1中后,再将str1连接到串str3之后
24.对C语言函数的正确描述是(D)
A.C语言程序总是从第一个定义的函数开始执行B.C语言程序中,要调用的函数必须放在main()函数中定义
C.C语言程序中的main()函数必须放在程序的开始部分D.C语言程序总是从main()函数开始执行
25.已知:
inta,*p;如果p指向a,则(D)
A.a与p存储单元的地址相同B.a与p的值相同C.a的值是p的地址D.p的值是a的地址
26.指针变量作为形参时,下列叙述正确的是(A)
A.实参可以是同类型的指针变量B.实参可以是同类型的常数C.实参可以是关系表达式D.实参可以是算术表达式
27.已知:
inta[]={1,3,5,7,9},*ip=a;表达式*ip+2的值是(B)
A.1B.3C.5D.7
28.下列程序段的输出结果是(B)A.-3B.-2C.-1D.3
inta[]={1,-2,3,-4},*ip=a;ip++;
printf"%d",(*ip)++);
29.C语言中,能够将数据写入磁盘文件的函数是(