C程序设计复习题1Word文件下载.docx
- 文档编号:18564603
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:19
- 大小:25.91KB
C程序设计复习题1Word文件下载.docx
《C程序设计复习题1Word文件下载.docx》由会员分享,可在线阅读,更多相关《C程序设计复习题1Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
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.指针就是地址;
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"
C、printf("
%6.3f"
D、printf("
%.3d"
16.以下程序的输出结果是:
()
A.20B.31C.321D.210
#include<
voidmain()
{intn=4;
while(n--)printf("
%d"
--n);
}
17.以下程序的输出结果是:
A.21147B.21C.14D.7
{intn=21;
do{
if(n%7)break;
printf("
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;
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['
-'
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
{inti,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;
i<
i++)printf("
%d,"
x[i][2-i]);
37.以下程序的输出结果是()
A.EFGHB.ABCDC.EFGD.ABCDEFGH
IJKLEFGJKFGH
IJOKL
{charw[][10]={"
ABCD"
"
EFGH"
IJKL"
MNOP"
},k;
for(k=1;
k<
k++)printf("
%s\n"
w[k]);
38.设有以下定义,则所列叙述正确的是().。
charx[]="
abcdefg"
chary[]={'
'
b'
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)
{{
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=&
q=&
C.p=&
g=&
D.p=&
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两个指针所指字符串中是否有'
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);
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=&
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.'
B.'
C.'
D.'
的地址
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="
C.num=12,name="
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--;
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]={“very”},s2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 复习题