C复习题.docx
- 文档编号:10977789
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:25
- 大小:40.13KB
C复习题.docx
《C复习题.docx》由会员分享,可在线阅读,更多相关《C复习题.docx(25页珍藏版)》请在冰豆网上搜索。
C复习题
一、选择题
1.以下叙述中正确的是( )。
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C) main()函数必须放在其它函数之前
D) 所有被调用的函数一定要在调用之前进行定义。
2.以下选项中合法的用户标识符是( )。
A) long B) _2Test C) 3Dmax D) A.dat
3.当执行以下程序时( )。
x=-1;
do
{x=x*x;}
while(!
x)
A)循环体将执行一次B)循环体将执行两次
C)循环体将执行无限次D)系统将提示有语法错误
4.已知字母A的ASCⅡ码为十进制数65,且C2为字符型,则执行语句C2=’A’+’6’-’3’;后,C2中的值为( )。
A)CB)69C)不确定的值D)D
5.以下选项中,与k=n++完全等价的表达式是()。
A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1
6.C语言提供的合法的数据类型关键字是( )。
A)DoubleB)shortC)integerD)Char
7.以下程序的输出结果是( )。
main()
{inta=1,b=2,c=3,k;
k=a+++b+++c++;
printf(“\n%d,%d,%d,%d”,a,b,c,k);}
A)1,2,3,6B)2,3,4,6
C)1,3,3,7D)1,3,3,6
8.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的是( )。
A)a≠0B)!
aC)a=0D)a
9.若有说明语句intx,y;,则计算表达式x=(y=4,++y,y+4);后x的值为( )。
A)5B)6C)8D)9
10.当a=3,b=2,c=1时,表达式f=a>b>c;的值是( )。
A)1B)0C)trueD)false
11.有如下程序
main()
{inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
该程序的输出结果是( )。
A)0B)1C)2D)3
12.若执行以下程序时从键盘上输入9,则输出结果是( )。
main()
{intn;
scanf(“%d”,&n);
if(n++<10)printf(“%d\n”,n);
elseprintf(“%d\n”,n--);
}
A)11B)10C)9D)8
13.假定所有变量均已正确说明,下列程序段运行后x的值是( )。
a=b=c=0;x=35;
if(!
a)x--;
elseif(b);
if(c)x=3;
elsex=4;
A)34B)4C)35D)3
14.程序段如下:
intk=0;
while(k++<=2)
printf(“%d\n”,k);
则正确的执行结果是( )。
A)1B)2C)0D)无结果
231
342
15.有以下程序
main()
{inti=0,s=0;
do{
if(i%2){i++;continue;}
i++;s+=i;
}while(i<7);
printf("%d\n",s);
}
执行后输出结果是( )。
A)28B)12C)16D)21
16.以下对二维数组a进行不正确初始化的是( )。
A)inta[][3]={3,2,1,1,2,3};B)inta[][3]={{3,2,1},{1,2,3}};
C)inta[2][3]={{3,2,1},{1,2,3}};D)inta[][]={{3,2,1},{1,2,3}};
17.有以下程序执行后输出结果是( )。
main()
{
intp[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7&&p[i]%2){k=k+p[i];i++;}
printf("%d\n",k);
}
A)58B)56C)45D)24
18.以下程序的输出结果是( )。
intf()
{staticinti=0;
ints=1;s+=i;i++;
returns;}
main()
{inti,a=0;
for(i=0;i<5;i++)a+=f();
printf("%d\n",a);
}
A)20B)24C)25D)15
19.对C语言的文件存取方式的论述中,正确的是文件()。
A)只能顺序存取B)只能随机存取
C)只能从文件的开头存取D)可以是顺序存取,也可以是随机存取
20.若指针p已经正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是( )。
A)p=2*(int*)malloc(sizeof(int));B)p=(int*)malloc(2*sizeof(int));
C)p=(int*)malloc(2*2);D)p=(int*)calloc(2,sizeof(int));
21.一个C语言程序是由( )组成。
A)一个主程序及若干个子程序
B)一个主程序
C) 一个主函数及若干个子函数
D) 一个主函数
22.以下选项中不合法的用户标识符是( )。
A) abc.c B) _2Test C) MainD) PRINTF
23.main函数在源程序中的位置( )。
A)必须在最开始B)必须在子函数的后面
C)必须在最后D)可以任意
24.在C语言中要求参加运算的数必须是整数的运算符是( )。
A)/B)%C)!
D)==
25.以下选项中,与k=n++完全等价的表达式是()。
A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1
26.若intx=6;则x+=x-=x*x;x的值为( )。
A)36B)-60C)60D)-24
27.下面语句中符合C语言语法的赋值语句是( )。
A)a=7+b+c=a+7;B)a=7+b++=a+7;
C)a=7+b,b++,a+7D)a=7+b;c=a+7;
28.若定义语句:
intb[]={1,2,3,4,5},*p=b;,则表达式*p++的值是()。
A)1B)2C)b[0]的地址D)b[1]的地址
29.对以下说明语句的正确理解是()。
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)因为数组长度与初值的个数不相同,所以此语句不正确
30.有下面的程序段
chara[3],b[]="China";
a=b;
printf("%s",a);
则()。
A)运行后将输出ChinaB)运行后将输出Ch
C)运行后将输出ChitrueD)编译出错
31.下列程序段的输出为()。
inta,b,c;
a=10;b=50;c=30;
if(a>b)a=b,
b=c;
c=a;printf(“a=%d,b=%d,c=%d”,a,b,c);
A)a=10,b=50,c=10B)a=10,b=30,c=10
C)a=50,b=30,c=10D)a=50,b=30,c=50
32.对循环语句:
for(表达式1;表达式2;表达式3),以下叙述正确的是()。
A)for语句中的三个表达式一个都不能少
B)for语句中的循环体至少要被执行一次
C)for语句中的循环体可以是一个复合语句
D)for语句只能用于循环次数已经确定的情况
33.调用函数时,基本类型变量作函数实参,它和对应的形参( )。
A)同名时才能共用存储单元B)共占用一个存储单元
C)各自占用独立的存储单元D)不占用存储单元
34.以下对C语言函数的有关描述中,正确的是()。
A)C函数既可以嵌套定义又可以递归调用
B)函数必须有返回值,否则不能使用函数
C)C程序中有调用关系的所有函数必须放在同一个源程序文件中
D)在C语言中,调用函数时,只能把实参的值传给形参,形参的值不能传给实参
35.以下能正确地定义整型变量a,b和c并为其赋初值5的语句是( )。
A)inta,b,c=5;a=b=c;B)inta,b,c=5C)a=5,b=5,c=5D)a=b=c=5
36.以下对二维数组a进行不正确初始化的是( )。
A)inta[][3]={6,5,4,4,5,6};B)inta[][]={{6,5,4},{4,5,6}};
C)inta[2][3]={{6,5,4},{4,5,6}};D)inta[][3]={{6,5,4},{4,5,6}};
37.下列程序段的输出结果是( )。
intx=10;
inty=x++;
printf("%d,%d\n",(x++,y),y++);
A)10,10B)10,11C)11,10D)11,11
38.若有定义:
inta[3][4];,不能表示数组元素a[1][1]的是( )。
A)*(a[1]+1)B)*(&a[1][1])C)(*(a+1)[1])D)*(a+5)
39.下列关于C语言文件操作叙述正确的是()。
A)先关闭文件B)先打开文件
C)对顺序无要求D)先测试文件是否存在,然后再打开文件
40.在以下定义中,标识符prt( )。
int(*prt)[3]
A)定义不合法
B)是一个指针数组名,每个元素是一个指向整数变量的指针
C)是一个指针,它指向一个具有3个元素的一维数组
D)是一个指向整型变量的指针
41.一个C程序可以包含任意多个不同名的函数,但有且仅有一个( )。
A)过程B)主函数C)函数D)include
42.设定d为字符变量,则下列表达式正确的是( )。
A)d=678B)d=”d” C)d=’d’ D)d=’gjkl’
43.以下说法正确的是( )。
A)一个函数的函数体必须要有执行部分和变量定义部分
B)一个函数的函数体必须要有变量定义和执行部分
C)一个函数的函数体可以没有变量定义和执行部分,函数是空函数
D)一个函数的函数体必须要有执行部分,可以没有变量定义
44.下列类型中( )属于构造类型。
A)短整型B)字符型C)实型D)结构体类型
45.已知year为整型变量,不能使表达式(year%4==0&&year%100!
=0)||(year%400)的值是真的整型数据是( )。
A)1990B)1988C)1992D)2000
46.C语言中用于结构化程序设计的三种基本结构是( )。
A)if、for、continueB)if、switch、break
C)for、while、do-whileD)顺序结构、选择结构、循环结构
47.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的是( )。
A)a≠0B)!
aC)a=0D)a
48.下面的程序输出结果为( )。
#include
main()
{chars[]=”abc”,*p;
p=s;
printf("%c%c%c\n",*p++,*p++,*p++);
}
A)abcB)cbaC)bacD)cab
49.有如下程序
main()
{inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
该程序的输出结果是( )。
A)0B)1C)2D)3
50.若执行以下程序时从键盘上输入9,则输出结果是( )。
main()
{intn;
scanf(“%d”,&n);
if(n++<10)printf(“%d\n”,n);
elseprintf(“%d\n”,n--);}
A)11B)10C)9D)8
51.程序段如下:
intk=0;
while(k++<=2)
printf(“%d\n”,k);
则正确的执行结果是( )。
A)1B)2C)0D)无结果
231
342
52.下述对C语言字符数组的描述正确的是( )。
A)任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序占用存储空间
B)一维数组的元素在引用时其下标大小没有限制
C)任何一个一维数组的元素,可以根据内存的情况按先后顺序以连续或非连续的方式占用存储空间
D)一维数组的第一个元素是其下标为1的元素
53.下列说法不正确的是()。
A)形式参数是局部变量
B)不同的函数中,可以使用相同名字的变量
C)在一个函数的内部,可以在复合语句中定义变量
D)主函数main中定义的变量在整个文件或程序中都有效
54.下列说法正确的是()。
A)结构体的每个成员的数据类型必须是基本数据类型
B)结构体的每个成员的数据类型都相同,这一点与数组一样
C)结构体定义时,其成员的数据类型不能是结构体本身
D)以上说法均不正确
55.打开一个新的二进制文件,若要用fopen函数,使该文件要既能读也能写,则文件打开时的方式字符串应是()。
A)“rb+”B)“wb+”C)“b+”D)“ab”
56.C语言程序的3种基本结构是()。
A.循环、转移、顺序B.顺序、选择、循环
C.嵌套、递归、顺序D.递归、循环、顺序
57.下述对C语言字符数组的描述中错误的是()。
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
58.若有定义inta,b;输入形式为123,69以下正确的输入语句为()。
A.scanf(“%d%d”,&a,&b);B.scanf(“%-3d%-2d”,&a,&b);
C.scanf(“%d,%d”,&a,&b);D.scanf(“%d,%d”,a,b);
59.下列类型不属于基本类型的是()。
A.结构体类型和整型B.结构体类型、数组、指针
C.实型D.空类型和枚举型
60.以下说法正确的是()。
A.C语言程序总是从第一个定义的函数开始执行
B.要调用的函数必须在main()函数中定义
C.C程序书写格式自由,一个语句可以分写在多行上
D.C程序书写格式严格限制,一行内必须写一个语句
61.若有以下程序段:
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是()。
A.0B.0.5C.1D.2
62.C语言中,每个语句和数据定义是用()结束。
A.逗号B.引号C.句号D.分号
63.对以下说明语句的正确理解是()
inta[10]={6,7,8,9,10};
A.将5个初值依次赋给a[0]至a[4]
B.将5个初值依次赋给a[1]至a[5]
C.将5个初值依次赋给a[6]至a[10]
D.因为数组长度与初值的个数不相同,所以此语句不正确
64.在C语言函数的定义和引用中,以下描述正确的是()。
A.必须有形式参数B.形式参数必须是变量名
C.数组名称不能作为形式参数D.可以有也可以没有形式参数
65.在C语言程序中,下面描述正确的是()。
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均可以嵌套
D.函数的定义和函数的调用均不可以嵌套
66.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是()。
A.单向值传递B.地址传递
C.由用户指定传递方式D.由实参传给形参,再由形参传回给实参
67.若有以下定义:
chars[20]="tropetry",*p=s;则不能代表字符o的表达式是( )。
A.p+2B.s[2]C.p[2]D.p+=2,*p(
68.定义如下变量:
intn=10;
则下列循环的输出结果是()。
While(n>7)
{n--;
printf(“%d”,n);}
A.10987B.1098C.987D.9876
69.下列说法正确的是()。
A.不同结构体的成员名不能相同
B.一个具体的结构体的成员数目可以根据自己的需要随时更改
C.结构体定义时各成员项之间可用分号也可用逗号隔开
D.定义结构体时,它的每个成员的数据类型可以不同
70.对C语言的文件存取方式的论述中,正确的是文件()。
A.只能顺序存取B.只能随机存取
C.只能从文件的开头存取D.可以是顺序存取,也可以是随机存取
二、填空题
1.下面程序的功能是:
输出100以内能被3整除且个位数为6的所有整数,请填空。
#include
main()
{inti,j;
for(i=0;【1】;i++)
{j=i*10+6;
if(【2】)continue;
printf("%5d",j);
}
}
2.以下程序的功能是:
从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。
请填空。
main()
{floatx[1000],sum=0.0,ave,a;intn=0,i;
printf("Entermark:
\n");
scanf("%f",&a);
while(a>0.0&&n<1000){sum=【3】;x[n]=【4】;
n++;scanf("%f",&a);}
ave=【5】;
printf("Output:
\n");
printf("ave=%f\n",ave);
for(i=0;i 3.若有以下程序 main() {inta=1,b=2,c=3,t; if(a if(a printf("%d%d%d\n",a,b,c);} 执行后输出结果是【7】。 4.以下程序的功能是调用函数fun计算: m=1-2+3-4+…+19-20,并输出结果,请填空。 intfun(intn) {intm=0,f=1,i; for(i=1;i<=n;i++) {m+=i*f;f=【8】;} returnm; } main() {printf("m=%d\n",【9】);} 5.以下程序的输出结果是【10】。 main() {intarr[]={30,25,20,15,10,5},*p=arr;p++; printf("%d\n",*(p+3)); } 6.C语言中,break语句只能用于【1】语句和【2】语句中。 7.完善程序,从键盘输入字符,若是数字字符,则转换成数字后显示出来。 #include“stdio.h” main() {intc;c=getchar(); if(【3】)【4】; printf(“%d”,c);} 8.下面程序输出右图所示的结果。 请在划线处填入所需内容。 10001 11010 10100 11010 20001 main() {inta[5][5],i,j; for(i=0;i<5;i++) {for(j=0;j<5;j++) {if(【5】)a[i][j]=1; elsea[i][j]=0; a[i]【6】=1; printf(“%4d”,【7】); } printf(“\n”); } } 9.裴波那契数列中的头两个数都是1,从第三个数开始,每个数等于前两个数之和。 下述程序计算此数列的前20个数,且每行输出5个数,请填空。 #include main() {intf,f1=1,f2=1; inti; printf(“%6d%6d”,f1,f2); for(i=3;i<=20;i++) {f=【8】; printf(“%6d”,f); if(【9】) printf(“\n”); f1=f2; 【10】;}} 8.若想通过以下输入语句给a赋1,给b赋2,则输入数据的形式应该是。 … inta,b; scanf(“a=%d,b=%d”,&a,&b); … 9.若有以下程序 main() {inta=1,b=2,c=3,t; if(a if(a printf("%d%d%d\n",a,b,c); } 执行后输出结果是。 10.完善程序,从键盘输入字符,若是数字字符,则转换成数字后显示出来。 #include“stdio.h” main() {intc;c=getchar(); if(); printf(“%d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习题