C语言期末考试复习资料 计算机等级考试复习题目.docx
- 文档编号:24450327
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:57
- 大小:34.96KB
C语言期末考试复习资料 计算机等级考试复习题目.docx
《C语言期末考试复习资料 计算机等级考试复习题目.docx》由会员分享,可在线阅读,更多相关《C语言期末考试复习资料 计算机等级考试复习题目.docx(57页珍藏版)》请在冰豆网上搜索。
C语言期末考试复习资料计算机等级考试复习题目
C语言复习题@复刻回忆
新浪微博账号:
个人主页
@Yourname_________
注:
本文部分题目摘自其他文档。
一、填空
1.函数调用时的实参和形参之间的数据是单向的【1】传递.值
2.设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:
a*=16+(b++)-(++c);后,a的值是【1】.28
3.C语言中,【1】是程序的基本组成部分.函数
4.C语言的三种基本结构是【1】结构、选择结构、循环结构.顺序
5.执行以下程序段后,s的值是【1】16
inta[]={5,3,7,2,1,5,3,10},s=0,k;
for(k=0;k<8;k+=2)
s+=*(a+k);
6.break语句除了可以用于循环语句的循环体中,还可以用于【1】语句中.switch
7.执行语句"n=1;if(n=5)n++;"后,变量n值为【1】.6
8.c语言表达式5>2>7>8的值是【1】.0
9.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是【1】.int
10.函数的定义不可以嵌套,但函数的调用【1】嵌套.
可以
11.设x的值为15,n的值为2,则表达式x%=(n+3)运算后x的值是【1】.0
12.如果函数不要求带回值,可用【1】来定义函数返回值为空.void
13.设有程序段
intx=4,y=4;
t=++x||++y;
执行语句后y的值为【1】.4
14.执行下列语句后,*(p+1)的值是【1】.b
chars[3]="ab",*p;
p=s;
15.若有以下定义和语句:
inta[4]={0,1,2,3},*p;
p=&a[2];
则*--p的值是【1】.1
16.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为【1】.1.0
17.若x为int型,请以最简单的形式写出与逻辑表达式!
x等价的C语言关系表达式【1】.x==0
18.逗号表达式(a=3*5,a*4),a+5的值为【1】.20
19.在调用函数fopen("a:
\\b.dat","r")时,若A盘根目录下不存在文件b.dat,则函数的返回值是【1】.NULL
20.已知x=2,y=2则表达式x*=y+8的值为【1】.20
21.若声明"chara[15]="Windows-9x";",语句"printf("%s",a+8);"的输出结果为【1】.9x
22.设a,b,t为整型变量,初值为a=7,b=9,执行完语句t=(a>b)?
a:
b后,t的值是【1】.9
23.若a=1,b=4,c=3,表达式a&&b+c||b-c的值为【1】.1
24.设inti=5;则循环语句while(i>=1)i--;执行后,i的值为【1】.0
25.调用fopen函数打开一文本文件,在"使用方式"这一项中,为输入而打开需填入【1】.r
26.从函数的形式上看,函数分为无参函数和【1】两种类型.有参函数
27.C程序中有且仅有一个【1】函数.main
28.从变量的作用域角度分有全局变量和【1】.局部变量
29.设有下面的程序段
intx=0,y=0,t;
t=x&&++y;
执行语句后y的值为【1】.0
30.若有定义:
chars[]="china";则VisualC++系统为数组s开辟【1】个字节的内存单元.6
31.写出语句b=(a=6,a*3);执行后整型变量b的值是【1】.18
32.当a=1,b=1,c=1时,表达式a
33.设y为int型变量,请写出描述"y为奇数"的表达式【1】.y%2!
=0=========或=========y%2==1
34.在C语言中的实型变量分为两种类型,它们是float型和【1】型.double
35.【1】语句,只能用在循环中,以中断某次循环,继续下一次循环.continue
36.unionun1
{inta;
charb;
floatc;
}x;
上述定义的共同体变量x共占用存储空间【1】个字节.4
37.已知i=5,写出语句a=i++;执行后整型变量a的值是【1】.5
38.计算a、b中最小值的条件表达式为【1】.a
a:
b
39.一个C源程序中至少应包括一个【1】函数.main
40.C语言中一个函数由函数首部和【1】两部分组成.
函数体
41.已知a=10,b=15,c=1,d=2,e=0,则表达式c==b>e的值为【1】.1
42.若有以下定义和语句:
inta[5]={1,3,5,7,9},*p;
p=&a[2];
则++(*p)的值是【1】.6
43.在函数调用中,若实参为数组名,则形参必须为数组名或【1】.指针变量
44.已知i=5;写出语句i+=012;执行后整型变量i的十进制值是【1】.15
45.C语言中调用【1】函数来关闭文件.fclose
46.程序段intk=10;while(k=0)k=k-1循环体语句执行【1】次.0
47.若在程序中用到"strlen()"函数时,应在程序开头写上包含命令#include"【1】".string.h
48.当程序读写数据文件时,需要有声明语句"FILE*fp;",在该声明语句之前必须包含的头文件名为【1】.stdio.h
二、单项选择
1.设变量定义为"intx,*p=&x;",则&(*p)相当于A
A:
pB:
*pC:
xD:
*(&x)
2.C语言中要求对变量作强制定义的主要理由是().D
A:
便于移植B:
便于写文件
C:
便于编辑预处理程序的处理
D:
便于确定类型和分配空间
3.设有以下说明语句
structex
{intx;floaty;charz;}example;
则下面的叙述中不正确的是().B
A:
struct结构体类型的关键B:
example是结构体类型名
C:
x,y,z都是结构体成员名D:
structex是结构体类型
4.C语言中不可以嵌套的是().B
A:
函数调用B:
函数定义C:
循环语句D:
选择语句
5.在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式().D
A:
只能用逻辑表达式B:
只能用关系表达式
C:
只能用逻辑表达式或关系表达式D:
可用任意表达式
6.C语句"x*=y+2;"还可以写作().C
A:
x=x*y+2;B:
x=2+y*x;
C:
x=x*(y+2);D:
x=y+2*x;
7.对以下说明语句inta[10]={6,7,8,9,10};的正确理解是().B
A:
将5个初值依次赋给a[1]至a[5]
B:
将5个初值依次赋给a[0]至a[4]
C:
将5个初值依次赋给a[6]至a[10]
D:
因为数组长度与初值的个数不相同,所以此语句不正确
8.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是().B
A:
voidB:
intC:
floatD:
double
9.设已有声明"intx[]={1,2,3,4,5,6},*p=&x[2];",则值为3的表达式是().B
A:
*++pB:
*(p++)C:
++*pD:
*p+1
10.判断char型变量cl是否为小写字母的正确表达式是().D
A:
'a'<=cl<='z'B:
(cl>=a)&&(cl<=z)
C:
('a'>=cl)||('z'<=cl)D:
(cl>='a')&&(cl<='z')
11.下面说明不正确的是().D
A:
chara[10]="china";
B:
chara[10],*p=a;p="china"
C:
char*a;a="china";
D:
chara[10],*p;p=a="china"
12.设有说明"intx=3,y=4;",则"++x>y--?
x:
y"的值为().D
A:
4B:
1C:
2D:
3
13.设有说明:
charc;intx;doublez;则表达式c*x+z值的数据类型为D
A:
floatB:
intC:
charD:
double
14.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是().C
A:
1B:
2C:
2.0D:
2.5
15.设变量定义为"inta,b;",执行下列语句时,输入_____,则a和b的值都是10.D
scanf("a=%d,b=%d",&a,&b);
A:
1010B:
10,10
C:
a=10b=10D:
a=10,b=10
16.数组名作为实参数传递给函数时,数组名被处理为().C
A:
该数组的长度B:
该数组的元素个数
C:
该数组的首地址D:
该数组中各元素的值
17.两个指针变量不可以().A
A:
相加B:
比较C:
相减D:
指向同一地址
18.下列()表达式的值为真,其中a=5;b=8;c=10;d=0D
A:
a*2>8+2B:
a&&d
C:
(a*2-c)||dD:
a-b 19.对两个数组a和b初始化如下: chara[]="abc"; charb[]={'a','b','c'}; 则以下叙述正确的是().D A: a与b数组完全相同B: a与b数组长度相同 C: a与b中都存放字符串D: a数组比b数组长度长 20.若有以下定义: chars='\092';则该语句().B A: 使s的值包含1个字符B: 定义不合法,s的值不确定 C: 使s的值包含4个字符D: 使s的值包含3个字符 21.能正确表示逻辑关系: "a≥10或a≤0"的C语言表达式是D A: a>=10ora<=0B: a>=0|a<=10C: a>=10&&a<=0D: a>=10||a<=0 22.下列字符序列中,不可用作C语言标识符的是().B A: b70B: #abC: symbolD: a_1 23.系统的标准输入文件是指().A A: 键盘B: 显示器C: 软盘D: 硬盘 24.若给定条件表达式(M)? (a++): (a--),则其中表达式M().C A: 和(M==0)等价B: 和(M==1)等价 C: 和(M! =0)等价D: 和(M! =1)等价 25.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是().B A: 7B: 8C: 6D: 2 26.库函数在使用时,要用()A A: #include命令B: #define命令C: #ifD: #else 27.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符().C A: 必须为字母B: 必须为下划线 C: 必须为字母或下划线 D: 可以是字母,数字和下划线中任一字符 28.已定义两个字符数组a,b,则以下正确的输入格式是A A: scanf("%s%s",a,b); B: get(a,b); C: scanf("%s%s",&a,&b);D: gets("a"),gets("b"); 29.以下不能正确进行字符串赋初值的语句是().A A: charstr[5]="good! "; B: charstr[]="good! "; C: char*str="good! "; D: charstr[5]={'g','o','o','d',0}; 30.不正确的字符串赋值或赋初值的方式是().C A: charstr[]="string"; B: charstr[7]={'s','t','r','i','n','g'}; C: charstr[10];str="string"; D: charstr[7]={'s','t','r','i','n','g','\0'}; 31.关于建立函数的目的,以下正确的说法是().B A: 提高程序的执行效率 B: 提高程序的可读性 C: 减少程序的篇幅 D: 减少程序文件所占内存 32.以下标识符中,不能作为合法的C用户定义标识符的是().B A: a3_b3B: voidC: _123D: IF 33.若变量均已正确定义并赋值,以下合法的C语言赋值语句是A A: x=n/2.5;B: x==5;C: x+n=I;D: 5=x=4+1; 34.若有声明"intx[10]={0,1,2,3,4,5,6,7,8,9},*p",则值不为4的表达式是().C A: p=x,*(p+4)B: p=x+4,*p++ C: p=x+3,*(p++)D: p=x+3,*++p 35.以下的选择中,正确的赋值语句是().C A: a=1,b=2B: j++C: a=b=5;D: y=int(x) 36.gets函数的功能是()B A: 读取从键盘输入的一串不带空格的字符串 B: 读取从键盘输入的一串带空格的字符串 C: 读取从键盘输入的一串不带数字的字符串 D: 读取从键盘输入的一串只带字母的字符串 37.若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是().C A: intp=&x;B: int*p=x; C: int*p=&x;D: *p=*x; 38.执行语句for(i=1;i++<4;);后变量i的值是().C A: 3B: 4C: 5D: 不定 39.字符串指针变量中存入的是B A: 字符串B: 字符串的首地址 C: 第一个字符D: 字符串变量 40.变量s的定义为char*s="helloworld! ";,要使用变量p指向s所指向的同一个字符串,则应选取().A A: char*p=s;B: char*p=&s; C: char*p;p=*s;D: char*p;p=&s; 41.在C语言中,函数的数据类型是指()A A: 函数返回值的数据类型 B: 函数形参的数据类型 C: 调用该函数时的实参的数据类型 D: 任意指定的数据类型 42.经过以下语句定义后,表达式z+=x>y? ++x: ++y的值为().C intx=1,y=2,z=3; A: 2B: 3C: 6D: 5 43.若用数组名作为函数的实参,传递给形参的是().A A: 数组的首地址B: 数组第一个元素的值 C: 数组中全部元素的值D: 数组元素的个数 44.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是().A A: 字符AB: 字符aC: 字符eD: 非法的常量 45.设C语言中,int类型数据占2个字节,则long类型数据占().C A: 1个字节B: 2个字节C: 4个字节D: 8个字节 46.下列运算符中,不属于关系运算符的是().D A: >C: >=D: ! 47.下列字符数组长度为5的是A A: chara[]={'h','a','b','c','d'}; B: charb[]={'h','a','b','c','d','\0'}; C: charc[10]={'h','a','b','c','d'}; D: chard[6]={'h','a','b','c','\0'}; 48.设有说明语句chara='\101';,则变量a().D A: 包含4个字符B: 包含2个字符 C: 包含3个字符D: 包含1个字符 49.当定义一个结构体变量时,系统分配给它的内存是().A A: 各成员所需内存量的总和 B: 结构中第一个成员所需内存量 C: 结构中最后一个成员所需内存量 D: 成员中占内存量最大者所需的容量 50.能将高级语言编写的源程序转换为目标程序的是().C A: 链接程序B: 解释程序C: 编译程序D: 编辑程序 51.具有相同类型的指针变量p与数组a,不能进行的操作是().D A: p=a;B: *p=a[0];C: p=&a[0];D: p=&a; 52.为了避免在嵌套的条件语句if—else中产生二义性,C语言规定: else总与()配对B A: 缩排位置相同的ifB: 其之前最近的未配对的if C: 其之后最近的ifD: 同一行上的if 53.设有说明: charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为().D A: floatB: intC: charD: double 54.整型变量x=1,y=3,经下列计算后,x的值不等于6的是C A: x=(x=1+2,x*2)B: x=y>2? 6: 5C: x=9-(--y)-(y--)D: x=y*4/2 55.若有定义: intaa[8];则以下表达式中不能代表数组元aa[1]的地址的是().C A: &aa[0]+1B: &aa[1]C: &aa[0]++D: aa+1 56.若有定义inta[10],*p=a;,则p+5表示A A: 元素a[5]的地址B: 元素a[5]的值 C: 元素a[6]的地址D: 元素a[6]的值 57.C语言中运算对象必须是整型的运算符是().A A: %=B: /C: =D: 〈= 58.若二维数组a有m列,则在a[i][j]前的元素个数为().B A: j*m+iB: i*m+jC: i*m+j-1D: i*m+j+1 59.从循环体内某一层跳出,继续执行循环外的语句是A A: break语句B: return语句 C: continue语句D: 空语句 60.以下运算符中,优先级最高的运算符是().D A: =B: ! =C: *(乘号)D: () 61.逻辑运算符两侧运算对象的数据类型().D A: 只能是0或1B: 只能是0或非0正数 C: 只能是整型或字符型数据D: 可以是任何类型的数据 62.若i为整型变量,则以下循环执行次数是().B for(i=2;i==0;)printf("%d",i--); A: 无限次B: 0次C: 1次D: 2次 63.逗号表达式"(a=3*5,a*4),a+15"的值是().C A: 15B: 60C: 30D: 不确定 64.fscanf函数的正确调用形式是().D A: fscanf(fp,格式字符串,输出表列); B: fscanf(格式字符串,输出表列,fp); C: fscanf(格式字符串,文件指针,输出表列); D: fscanf(文件指针,格式字符串,输入表列); 65.C语言的switch语句中case后B A: 只能为常量 B: 只能为常量或常量表达式 C: 可为常量或表达式或有确定值的变量及表达式 D: 可为任何量或表达式 66.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为().C A: intB: floatC: doubleD: 不确定 67.下列标识符中,不合法的C语言用户自定义标识符是().B A: printfB: enumC: _D: sin 68.以下定义语句中,错误的是().D A: inta[]={1,2};B: char*a[3]; C: chars[10]="test";D: intn=5,a[n]; 69.若有下列定义,则对a数组元素地址的正确引用是().B inta[5],*p=a; A: &a[5]B: p+2C: a++D: &a 70.在C语言程序中().B A: 函数的定义可以嵌套,但函数的调用不可以嵌套 B: 函数的定义不可以嵌套,但函数的调用可以嵌套 C: 函数的定义和函数调用均可以嵌套 D: 函数的定义和函数调用不可以嵌套 71.设有定义"floaty=3.45678;intx;",则以下表达式中能实现将y中数值保留小数点后2位,第3位四舍五入的表达 式是().D A: y=(y*100+0.5)/100.0B: y=(y/100+0.5)*100.0 C: y=y*100+0.5/100.0D: x=y*100+0.5,y=x/100.0 72.若有说明: inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是().B A: 2B: 3C: 4D: 无确定值 73.已知结构类型定义和变量声明如下: structsk {inta;floatb;}data[2],*p; 若有p=data,则以下对data[0]中成员a的引用中错误的是().A A: data[0]->aB: data->a C: p->aD: (*p).a 74.下列格式符中,可以用于以8进制形式输出整数的是().C A: %dB: %8dC: %oD: %1d 75.语句while(! E);中的表达式! E等价于().A A: E==0B: E! =1C: E! =0D: E==1 76.对二维数组的正确说明是().B A: inta[][]={1,2,3,4,5,6}; B: inta[][3]={1,2,3,4,5,6}; C: inta[2][]={1,2,3,4,5,6}; D: inta[2][3]={1,2,3,4,5,6,7} 77.下列数据中,为字符串常量的是().B A: AB: "house" C: Howdoyoudo.D: $abc 78.函数调用: strcat(strcpy(str1,str2),str3)的功能是D A: 将串str1复制到串str2中后再连接到串str3之后 B: 将串str1连接到串str2之后再复制到串str3之后 C: 将串str2连接到串str1之后再将串str1复制到串str3中 D: 将串str2复制到串str1中后再将串str3连接到串str1之后 79.判断两个字符串是否相等,正确的表达方式是C A: while(s1==s2) B: while(s1=s2) C: while(strcmp(s1,s2)==0)D: while(strcmp(s1,s2)=0) 80.若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句为().D A: printf("%d",*(a+5));B: printf("%d",p[5]); C: printf("%d",*(p+5));D: printf("%d",*p[5]); 81.C语言程序中必须有的函数是().B A: #include"stdio.h"B: main C: printfD: scanf 82.以下运算符中,优先级最高的运算符是().C A: ||B: %C: ! D: == 83.在下列程序段中,枚举变量c1,c2的值依次是().A enumcolor{red,yellow,blue=4,green,white}c1,c2; c1=yellow;c2=white; printf("%d,%d\n",c1,c2); A: 1,6B: 2,5C: 1,4D:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言期末考试复习资料 计算机等级考试复习题目 语言 期末考试 复习资料 计算机等级考试 复习 题目