u:
v
8.以下程序的输出结果是(A)P149(strlen字符数组,不包括\0)
main()
{charst[20]="hello\0\t\\\";
printf(%d%d\n",strlen(st),sizeof(st));}
A.520B.99C.1320D.2020
9.以下关于C语言的叙述正确的是:
(A)
A.从main()函数开始执行B.从#includ开始执行
C.从程序中的第一条语句开始执行D.从scanf()开始执行
10.执行语句scanf(“%d%d%d”,&x,&y,&z);后,能将整数5,6,7分别赋给变量x,y,z的是:
(A)P83
A5└┘6└┘└┘7<回车>B5;6;7<回车>
C5,6,7<回车>Dx=5,y=6,z=7<回车>
11.已有定义:
intx=3,y=4,z=5;,则表达式!
(x+y)+z-1&&y+z/2的值是(A).P94
A、1B、2C、0D、6、
12.叙述正确的是:
(A)
A.指针就是地址;
B.形参不是局部变量C.switch语句中必须有break语句;
D.在一个函数内部的复合语句中定义的变量可以在本函数中有效;
13.以下程序段().
intm=0,n=0;
while(!
m!
=0)n+=++m;
printf("%d\n",n);
A.运行后输出1B.控制表达式非法C.运行后输出0D.执行无限多次;
14.为了避免ifelse语句的二义性,C规定else与()配对。
A.其之前最近未配对的ifB.缩排位置相同的if
C.其之后最近未配对的ifD.同一行上的if
15.设变量x为float型且已赋值,则以下语句中能把x的值保留到小数点后两位,并将第3位四舍五入的是()
A、printf("%7.2d",x);B、printf("%8.2f",x);
C、printf("%6.3f",x);D、printf("%.3d",x);
16.以下程序的输出结果是:
()
A.20B.31C.321D.210
#include
voidmain()
{intn=4;
while(n--)printf("%d",--n);
}
17.以下程序的输出结果是:
()
A.21147B.21C.14D.7
#include
voidmain()
{intn=21;
do{
if(n%7)break;
printf("%d",n);}
while(--n);
}
18.在与switch语句配套的case后的表达式:
()
A.只能是常量或常量表达式B.可以是变量或常量C.只能是常量
D.无论是常量还是变量,只要在执行时已经有值就行
19.设有定义:
floata=2,b=4,h=3;其中a,b,h分别表示梯形的底和高,以下C语言表达式不能再去计算出梯形面积的是().
A、(1/2)*(a+b)*hB、h/2*(a+b)C、(a+b)*h/2D、(a+b)*h*1/2
20.复合语句:
{t=a;a=b;b=t;}的功能是()
A.交换a,b的值B.求a,b,t的最小值C.求a,b的最大值D.求a,b,t的最大值
21、else应该和()配对使用。
A.其前最后一个没有配过对的ifB.其前第一个if
C.其后最近的没有配过对ifD.其前最后一个if
22.下列叙述正确的是:
()
A.外循环中的break语句将结束所有循环B.外循环中的continue语句将结束所有循环
C.内循环中的break语句将结束所有循环D.内循环中的continue语句将结束所有循环
23.设j为int型变量,则以下循环语句的执行结果是().
for(j=10;j>3;j--)
{if(j%3)j--;
--j;--j;
printf("%d",j);
}
A、74B、63C、73D、62
24.下列描述中不正确的是()
A.可以对整型数组进行整体输入、输出B可以对字符型数组进行整体输入、输出
C.字符型数组中可以存放字符串
D不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
25.语句strlen(strcat(“very”,”good!
”))的值为()
A.9B.10C.11D.不确定
26.数组名作为实参时实际上被处理成()。
A.该数组首地址B.该数组各元素的值
C.该数组的长度D.该数组的元素个数
27.字符串“Iamastudent。
”占用()个字节。
A、15B、16C、14D、13
28.下列对数组a的定义及初始化中,不正确的的是()
A、inta[2][]={0,1,2,3,4,5};B、inta[][4]={3,5,6,9,2,1,7,4};
C、inta[2][4]={{3,4,5},{2,5,8}};D、inta[2][3]={3,5,6};
29.下列选项中,对数组的不正确的定义是()
A、intn=6,a[n]={0,1,2};B、inta[]={0,1,2,3,4,5};
C、inta[6];D、inta[6]={0,1,3};
30.下列选项中能够把5,6,7赋给数组a的是()。
A.inta[3]={5,6,7};B.inta[3];a[]={5,6,7};
C.inta[];a[3]={5,6,7};D.inta[3]=5,6,7;
31.若有以下说明:
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc='a',d,g;
则数值为4的表达式是().
A、a['d'-c]B、a[4]C、a['d'-'c']D、a[g-c]
32.设有定义:
chars1[30]=“good”,s2[]=“bye”;下列选项中能够输出goodbye的是()。
A.puts(strcat(s1,s2));B.puts(strcmp(s1,s2));
C.puts(strcpy(s1,s2));D.puts(strcat(s2,s1);
33.函数strlen(“I└┘am└┘a└┘student。
”)的值等于()。
A、15B、16C、12D13
34.以下数组定义中不正确的是()。
A.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};B.intb[][3]={0,1,2,3};
C.intc[100][100]={0};D.inta[2][3];
35.设有数组定义:
chara[]="China";则数组a所占的空间为()。
A.6个字节B.5个字节C.7个字节D.4个字节
36.以下程序的输出结果是()。
A.3,5,7B.1,4,7C.1,5,9D.3,6,9
voidmain()
{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]);}
37.以下程序的输出结果是()
A.EFGHB.ABCDC.EFGD.ABCDEFGH
IJKLEFGJKFGH
IJOKL
main()
{charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;
for(k=1;k<3;k++)printf("%s\n",w[k]);}
38.设有以下定义,则所列叙述正确的是().。
charx[]="abcdefg";
chary[]={'a','b','c','d','e','f','g'};
A.数组x的长度大于数组y的长度B.数组x和数组y的长度相同
C.数组x和y完全相同D.数组x的长度小于数组y的长度
40.C语言中函数返回值的类型是由()决定的。
A.定义函数时所指定的函数类型B.该函数的实参类型
C.调用语句D.return语句中表达式的类型
42.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。
A.单向值传递B.地址传递
C.由实参传给形参,再由形参传回实参D.传递方式由用户指定
43.关于函数定义,下列说法正确的是:
()
A.C语言规定,函数不可以嵌套定义,可以嵌套调用
B.C语言规定,函数可以嵌套定义,不可以嵌套调用
C.C语言规定,函数既可以嵌套定义,也可以嵌套调用
D.C语言规定,函数既不可以嵌套定义,也不可以嵌套调用
44.设有函数定义:
voidf(intx)下列函数声明语句正确的是()。
A.voidf(int);B.voidf()C.f(intx);D.f(int)
45.设有函数定义:
voidf(intx){……;}下列说法正确的是:
()。
A.f的形参是整型,没有返回值
B.f的形式参数是整型,返回值也是整型
C.因为f返回值的类型是void,所以f一定是空函数
D.因为函数的返回值类型和形参类型不一致,所以函数定义有错误
46.关于函数调用,下列说法正确的是:
()
A.函数可以调用除main函数以外的任意函数
B.标准函数(即库函数)可以调用其它函数,其它函数不能调用标准函数
C.所有的函数都是平等的,所以可以互相调用
D.只有main函数才能调用其它函数,其它函数之间不能互相调用
47.一个C程序可以由多个函数组成,但只能有一个()函数。
A、main函数B、printf函数C、自定义函数D、scanf函数
48.设有函数定义:
intfun(intn,floatx)下列选项中,能正确调用该函数的语句是()。
A、fun(5,2.0);B、fun(5.0,2.0);C、intfun(5,2);D、intfun(5,2.0);
49.以下不正确的说法是()。
A.在函数内的复合语句中定义的变量在本函数范围内有效B.形式参数是局部变量
C.在函数内定义的变量只在本函数范围内有效
D.在不同函数中可以使用相同名字的变量
50.关于函数,下列说法正确的是()。
A.主函数可以调用其它函数,其它函数不能调用主函数
B.所有的函数都可以互相调用
C.只有系统定义的函数才能调用用户自定义的函数
D.函数不能嵌套调用
51.设有函数声明voidfunction(floatx);则函数function是()。
A、不返回值的函数B、空函数C、返回值为实型数据的函数D、无参函数
52.下列函数定义正确的是()。
A.intadd(intx,inty)B.intadd(intx,inty) ;
{{
returnx+y;returnx+y;
}}
C.voidadd(intx,inty);D.intadd(intx,y)
{{
returnx+y;returnx+y;
}}
53.下列关于C函数的叙述中正确的是()。
A.函数不能嵌套定义,可以嵌套调用B.函数必须有return
C.函数必须有输入变量的语句D.函数必须有形参
54.调用函数时,以下叙述不正确的描述是()
A.实参与形参可以共占内存单元B.形参不分配存储单元
C.实参可以是地址D.通常要求实参与形参的类型应一致
55.当调用函数时,实参是一个数组名,则向函数传送的是()。
A.数组的首地址B.数组的长度
C.数组每一个元素的地址D.数组每个元素中的值
56.关于函数,下列说法正确的是:
()
A.函数的返回值类型就是函数中return语句带回值的类型
B.函数的返回值类型必须和形参的类型一致
C.所有的函数必须有返回值
D.所有的函数必须有scanf和printf语句
57.函数f1()在运行中调用了函数f2(),而f2()有调用了f1(),这种调用称为:
()
A.递归调用B.地址调用C.直接调用D.值调用
58.设函数f()的原型为voidf(intarray[],intm);主调函数中有声明:
inta[10];则下列语句正确的是:
()。
A.f(a,10);B.f(&a[i],i);C.voidf(a,10);D.f(inta[10],int10);
59.若有char*str[5];则其中的str是:
()
A.指针数组名B.指针变量名C.字符型数组名D.字符型变量名
60.假设有定义:
int*p,n;char*q,*g,ch;下列语句不正确的是:
()
A.p=&n;g=p=&ch;B.p=&n;q=&ch;
C.p=&n;g=&ch;D.p=&n;q=&ch;g=q;
61.如果变量已被正确定义,指针p指向x,则*&x等价于()。
A.*pB.&*xC.pD.**p
62.设有定义:
inta,*p;下列选项正确的是()。
Ap=&a,*p=23Bp=a=23Cp=&a=23D*p=&a=23
63.设有定义:
int*p[4];下列说法正确的是()。
A.p是由4个指针组成的指针数组,每个指针都可以指向一个整型变量
B.p是指向数组的指针,应该指向由4个整型元素组成的数组
C.*p是由4个指针组成的指针数组,每个指针都可以指向一个整型变量
D.*p是指向数组的指针,应该指向由4个整型元素组成的数组
64.若有说明和语句:
intc[4][5],(*p)[5];p=c;能正确引用数组元素的是().
A、*(p[0]+2)B、*(p+1)+3C、*(p+3)D、p+1
65.以下函数的功能是().
fun(char*p2,char*p1)
{while((*p2=*p1)!
='\0')
{p1++;p2++;}
}
A、将p1所指字符串复制到p2所指内存空间
B、将p1所指字符串的地址赋给指针p2
C、对p1和p2两个指针所指字符串进行比较
D、检查p1和p2两个指针所指字符串中是否有'\0'
66.设有定义:
floata,*p;下列选项能使a的值为2.7的是()。
Ap=&a,*p=2.7;B*p=a,*p=52.7;
C.p=&a,p=2.7;D.p=a,*p=2.7;
67.设:
charstr[]=”computer”;char*p=str;能够输出computer的语句是()。
A、printf(“%s”,p);B、printf(“%c”,*p);
C、printf(“%s”,*p);D、printf(“%c”,p);
68.设有定义:
float*ft[3];下列说法正确的是()。
A.ft是指针数组,它由3个指向实型数据的指针组成
B.*ft是指针数组,它由3个指向实型数据的指针组成
C.ft是指向含有3个实型数据的指针变量
D、D.*ft是指向含有3个实型数据的指针变量
69.设函数f()的原型为voidf(int*x,intm);主调函数中有声明:
inta[10];则下列语句正确的是:
()
A.voidf(a,10);B.f(&a[0],10);C.f(*a,10);D.f(inta[10],int10);
70.设有定义:
(int*p)[3];inta,c[3];则下列语句正确的是:
()
A.p=c;B.*p=&a;C.p=&c[3];D.p=&a;
71.假设变量已正确定义,指针p指向变量x,则*&x等价于:
()
A.*pB.&*xC.pD.**p
72.设有定义:
inti,a[10],*p;则下列语句合法的是:
()
A.p=a+5;B.p=a[2];C.p=20;D.p=&(i+5);
73.语句:
chars[3]="abc";则执行语句char*p=s;之后,*(p+2)的值是()
A.'c'B.'\0'C.'b'D.'b'的地址
74.设有以下说明语句:
structstu
{inta;floatb;}stutype;
则下面的叙述不正确的是:
()
A.stutype是用户定义的结构体类型
B.structstu是用户定义的结构体类型
C.struct是定义结构体类型的关键字
D.a和b都是结构体成员名
75.设有结构体定义:
structstudent{intnum;charname[20];floatscore;}stu1;则下列语句正确的是:
()
A.strcpy(stu1.name,”Lilin”);B.stu1.name[]=”Lilin”;
C.student.stu1.name[]=”Lilin”;D.strcpy(student.stu1.name,”Lilin”);
76.设有定义:
structchild
{charname[20];charxb;intage;}child_1,child_2;
能将“Liliang”赋给child_1的变量name的正确语句是()
A.strcpy(child_1.name,”Liliang”);B.strcpy(child.name,”Liliang”);
C.child.Name=“Liliang”;D.child_1.name=”Liliang”;
77.设有定义:
structps{intnum;charname[20];}psA;
下列语句正确的是()。
A.psA.num=12,strcpy(psA.name,"Xiaoli");B.ps.num=12,ps.name="Xiaoli";
C.num=12,name="Xiaoli";D.psA.num=12,psA.name="Xiaoli
78.设有定义:
structworker{charname[20];charsex;intage;}work1;则下列语句正确的是:
()
A.work1.age=34;B.age=34;
C.worker.work1.age=34;D.struct.worker.work1.age=34;
79.定义同上题,下列语句正确的是:
()
A.strcpy(work1.name[],”Liugang”);
B.strcpy(name,”Liugang”);
C.wor1.name[]=”Liugang”;
D.strcpy(work1.name,”Liugang”);
二、填空题:
1.用printf函数在屏幕上显示D:
\test\next的字样,应使用语句。
2.设有定义floatx=-56.632256;要在屏幕上显示x=-56.63,应使用语句。
3.已知整型变量n的初值为3,h的初值为1,则执行语句doh=h*n--;while(n);后h的值为。
4.设有语句:
chars[]=”Hello,2014.”;在屏幕上输出数组s,可使用C语句(可用你所熟悉的任何一条语句)。
5.设已定义字符型变量c1,c2,c3,则执行语句:
scanf(“%c%c%c”,&c1,&c2,&c3);后,输入a,b,c回车后,c1,c2,c3的值分别为。
6.条件表达式语句
y=x<1?
x:
x>=1&&x<10?
2*x-1:
3*x-11;
的if语句为。
7.能够正确表示y=|a-b|的C语言表达式为。
8.判别字符型变量ch的值是小写字母为真的C语言表达式为。
9.已知整型变量n的初值为3,h的初值为1,则执行语句doh=h*n--;while(n);后h的值为。
10.用PI表示常数3.14159的宏定义为.
11.使字符常量G的值等于9.8的宏定义命令是。
12、当键盘输入为ABCD【回车】时,语句ch=getchar();的值为。
13.设有以下变量定义,并已赋确定的值charw;intx;floaty;doublez;则表达式:
w*x+z-y所求得的数据类型为。
14.表示“整数x的绝对值大于6”时值为真的C语言表达式是。
15.已知整型变量a的初值为6,b的初始值为1,则执行语句dob+=a--;while(a);后b的值为。
16.数学函数asin的原型为:
doubleasin(doublex);功能是计算arcsin(x)的值。
使用该函数时,应该加上文件包含指令。
17.如果在C程序中要用到库函数中字符串比较函数strcmp,那么在程序前面应该加文件包含命令:
()。
18.设有定义chars1[20]={“v