C语言习题
更新时间:2024-06-21 03:33:01 阅读量: 综合文库 文档下载
(一) 一、判断题
( )1、开发C语言程序通常要经过编辑、预处理、编译、连接、装入和执行6个阶段。 ( )2、C语言程序由一个或多个函数组成,其中有且只有一个main函数。
( )3、C语言中,所有标识符必须由一个字母 ( a ~ z , A ~ Z ) 或下划线 ( _ )开头。
( )4、同一程序的各函数中定义的局部变量不可以同名。
( )5、C语言中,主函数main中定义的变量称为全局变量,在整个文件中有效。 ( )6、C语言中,函数重载常用于设计多个进行类似任务而处理不同数据类型的同名函数。 ( )7、C语言中,数组名的值就是数组中第一个元素的值。
( )8、在C++中,指针的作用是用来表示一个变量指向另一个变量这样的指向关系。 ( )9、C语言中,定义结构时,结构体中的成员名不能与程序中的其它变量重名。 ( )10、C语言中,声明一个结构并不分配内存,只有在定义结构变量时,才分配内存。
二、填空题
1、在C语言中,定义double类型数组arr, 数组大小为20, 应写为( )。
22
2、写出公式S=a+b+2ab的C语言赋值语句:( )。
3、定义a为长度为10的字符串、并为字符串赋初值\的语句为( )。
4、设ch是字符变量,则判断ch是小写英文字母的逻辑表达式为( )。
5、函数的返回值也叫函数值,函数值是通过函数中的( )语句获得的。
6、链表是一种非常有用的动态数据结构,只有一个指针链的链表称为( )。
7、对数组a[]进行初始化的数据为{2,4,6,8,10,12,14},则a[3]被初始化为( )。 8、对于 int *p, i = 5, j = 6; 执行 p = &i; p = &j; 后(*p)的值为( )。 9、执行完下列语句段后, i的值为:( )。
int a[3][4]={{1,2,3},{4,5,6}}, i; i= a[1][2];
10、有语句struct point{int x;int y;}; point pExample; 则将pExample的成员x初始化为8的语句是( )。
三、单选题
1、int i=10; float x; 执行x=8.0/i; 后x的值为( )。 ① 0.8 ② 0 ③ 0.0 ④ 1.0
2、下列变量名,( )是合法的
① 1x ② Stu_No ③ int ④ A-1
3、若i是int型变量,则程序段:i=322; if(i%2==0)printf(“####”); else printf(“****”); 的输出结果是( )
① #### ② **** ③ ####**** ④ 语法错误
4、函数中的形式参数是( )。
① 全局变量 ② 局部变量 ③ 静态变量 ④ 函数
5、已定义x和y为double类型,则表达式:x=2,y=x+3/2的值是( ) ① 1 ② 3.0 ③ 2.0 ④ 2.5
6、语句:
for (int k = -90; k; k--)
printf (\ ( )
① 编译通不过 ② 能运行, 但会死循环 ③ 能运行, 且不会死循环 ④ 以上说法都不对
7、定义在函数外的变量具有( )
① 函数作用域 ② 文件作用域 ③ 块作用域 ④ 函数原型作用域
8、下列说法中不正确的是( )
① 指针变量的存储空间的大小是一定的 ② 指针中存放的是地址值 ③ 指针可以进行加、减等算术运算 ④ 指针变量不占用存储空间
9、有如下程序
main() {
int n=9; while(n>5)
{ n--; printf(“%d”,n); } }
该程序段的输出结果是( ) ① 987 ② 876 ③ 8765
④ 9876
10、在下面的一维数组定义中,哪一个有语法错误。( ) ① int a[ ]={0,1,2,3,4}; ② int a[5]={0,1,2,3,4}; ③ int a[]; ④ int a[5];
11、按位或运算:int a = 5, b = 7, c = a | b; 变量c的值是( )
① 2 ② 5 ③ 7 ④ 12
12、c语言中,while于do~while语句的主要区别是( ) ① while的循环体至少无条件执行1次 ② while的循环控制条件比do~while的严格 ③ do~while的循环体至少无条件执行1次 ④ do~while允许从外部跳到循环体内
13、若已定义short a[2]={8,10},*p=&a[0];假设a[0]的地址为2000,short int 字长为2字节,
则执行p++后,指针p的值为( )
① 2000 ② 2001 ③ 2002 ④ 2003
14、设有如下的程序段:char str[]=\( )
① `H` ② `e` ③ ’l’
15、结构体类型变量在程序执行期间( ) ① 所有成员驻留在内存中 ② 只有一个成员驻留在内存中 ③ 部分成员驻留在内存中 ④ 没有成员驻留在内存中
一、判断题 1~5 √、√、√、×、× 6~10 √、×、√、×、√
二、填空题
1、double arr[20]; 2、s=a*a+b*b+2*a*b;
3、char a[10]=”continue“; 4、ch>=’a’&&ch<=’z’ 5、return 6、单向链表 7、8 8、6 9、6
10、 pExample.x=8
三、单选题 1~5 ①、②、①、②、② 6~10 ②、②、④、③、③ 11~15 ③、③、③、②、①
则*(ptr+1)的值为 ④ ’\\0’ (二)
一、判断题
( )1、使用C语言语言编写的程序可以直接在计算机上执行,无需编译。 ( )2、任何一个C语言程序都是从函数main开始执行的。 ( )3、C语言中,用户定义的标识符可以与C语言的关键字相同。
( )4、C语言中,调用重载函数时,C语言编译器通过检查调用中的实在参数个数、类型和顺序来确定相应的被调用函数。
( )5、在C程序中,使用条件编译命令可以使目标程序更短。
( )6、C语言中,语句int a[10];声明了一个整型数组,它有10个整型元素,下标的变化范围是1~10。
( )7、C语言中,数组作为函数参数进行传递时,传递的是数组第一个元素的地址。 ( )8、C语言中,函数中的形式参数是局部变量。
( )9、C语言中,指针所对应的存储单元存放的是另一个变量的地址。 ( )10、C语言规定,结构体类型中的成员只能是基本数据类型。
二、填空题
1、在C语言中,定义字符指针数组arr, 数组大小为20, 应写为( )。
2
2、写出公式S=(a+b)的C语言语言赋值语句:( )。 3、描述命题“A小于B且B大于C”的表达式为( )。
4、设ch是字符变量,则判断ch是大写英文字母的逻辑表达式为( )。
5、为字符数组a赋值\的语句为( )。 6、执行完下列语句段后, i值为:( )。 static int a[3][4]={{1,2,3},{4,5,6},{7,8,9}}, i; i= a[2][2];
7、对数组a[]进行初始化的数据为{1,3,5,7,9,11,13},则a[5]被初始化为( )。
8、假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)++;”语句后,p所指对象的值为( )。
9、链表是一种非常有用的动态数据结构,有两个指针链的链表称为( )。
10、有语句struct student{int no;char name[10];}; student stu; 则将stu的成员no初始化为8的语句是( )。
三、单选题
1、C语言语言函数的默认返回类型是( )
① 无 ② void ③ int ④ char
2、下列字符串不是标识符的是:( )
① _above ② all ③ _end ④ #eng
3、若x和y都是float型变量,x = 3.6,y = 5.8,则语句printf(“%f”, (x,y)); 的输出结果是( )
① 3.6 ② 5.8 ③ 3.6 5.8 ④ 语法错误
4、假设一个C语言的表达式中包含有int、short、double、char类型的变量和数据,则表达式最后的运算结果是( )类型数据。
① int ② long ③ double ④ char
5、若有说明int a[3][4];则对a数组元素的正确引用是:( )
① a[2][4] ② a[1,3] ③ a[1+1][0] ④ a(2)(1)
6、定义在函数原型参数列表中的变量具有( )
① 函数作用域 ② 文件作用域 ③ 块作用域 ④ 函数原型作用域
7、以下程序段运行后i值为( )
int i=0, a=1; switch (a) {
case 1: i+=1; break; case 2: i+=2; break; default: i+=3; break; }
① 1 ② 3 ③ 6 ④ 上述程序有语法错误
8、下列while循环,将执行几次( )
i= 4;
while (--i) printf(“%d ”, i);
① 3次
② 4次 ③ 0次
④ 无限次
9、下列说法中不正确的是:( ) ① 指针是一个变量
② 指针中存放的是地址值
③ 指针可以进行加、减等算术运算 ④ 指针变量不占用存储空间
10、若有int *p, a[10]; p=a; 则下列写法不正确的是:( ) ① p=a+2 ② a++ ③ *(a+2) ④ p++
11、设有说明语句int a = 6, b = 8, c = a | b;
变量c的值是( )
① 12 ② 14 ③ 48 ④ -2
12、指向变量的指针,其含义是指该变量的( )
① 值 ② 地址 ③ 名 ④ 一个标志
13、执行int a=5,*p=&a;后,*p的值是什么?( )
① 变量a的地址值 ②无意义 ③ 变量p的地址 ④ 5
14、有类型定义 char s[3] = \char *p; 执行语句p=s;之后,*(p+1)的值为(① ‘B’ ② ‘\\0’ ③ 不确定 ④ 字符’B’的地址
15、联合体类型变量在程序执行期间的某一时刻( ) ① 所有成员驻留在内存中
② 只有一个成员驻留在内存中 ③ 部分成员驻留在内存中 ④ 没有成员驻留在内存中
四、程序填空题
1、以下函数求x的y次方,补足所缺语句,以实现函数的功能。
double fun(double x, int y) { int i;
double z = 1;
for (i=1; ; i++) z = ; return z; }
五、程序阅读
1.下列函数实现的功能是( )。 long fun(int i) { long t=1;
for(int j=1;j<=i;j++) t=t*j; return t; }
2.下列程序的运行结果是( )。 #include
int b[]={-3, 2, 0, 1, -2} ; int f(int *a, int x) {
)
int s=0;
for(int n=3; n>=0; n--) s += x+a[n]; return s; }
main() {
printf(\ printf(\ printf(\ return 0; }
一、判断题(每题 1 分,共 10 分) 1~5 ×、√、×、√、√ 6~10 ×、√、√、√、×
二、填空题(每题1分,共10分) 1、char arr[20]; 2、s=(a+b)*(a+b); 3、AC;
4、ch>=’A’&&ch<=’Z’ 5、char a[]=”abc”; 6、9 7、11 8、26
9、双向链表 10、 stu.no=8
三、单选题(每题 2 分,共 30 分) 1~5 ③、④、②、③、③ 6~10 ④、①、①、④、② 11~15 ②、②、④、①、②
四、程序填空题(每题5分,共15分)
1、i<=y (2.5分) z=z*x (2.5分)
五、程序阅读(每题5分,共15分) 1、求整数的阶乘 2、4 8 12
(三)
一、判断题
( )1、C语言中,函数是程序的基本单位,一个程序可以由若干个main函数和其它函数组成。
( )2、C语言规定标识符只能由字母和数字组成,且第一个字符必须为字母。
( )3、若有int a,b,t; b=1; 请判断以下语句是否符合C语言语法规则:if ( (a=b)>0) t=a;
( )4、C语言中,有调用关系的所有函数必须放在同一个源程序文件中。 ( )5、定义函数时指定的形参变量,函数调用结束后将释放所占内存单元。 ( )6、C语言中,函数的定义可以嵌套,但函数调用不能嵌套。
( )7、C语言中,数组名作为参数传递给函数,作为实在参数的数组名被处理为该数组的
首地址。
( )8、在C++中,指针变量可用于保存同类型变量的地址值。
( )9、C语言中,char *cptr[3]定义了一个一维指针数组,它有3个元素,每个元素都是指向字符数据的指针型数据。
( )10、C语言中,可以把一个结构体变量作为一个整体赋值给另一个具有相同类型的结构体变量。
二、填空题
1、在C语言中,已知:char ch=’A’; 则下列表达式的值是( )。 ch = (ch>=’A’&&ch<=’Z’)?(ch+32):ch; 2、在C语言中,若a=1,b=2,c=3,则执行表达式(a>b)&&(C语言)后,c的值为( )。 3、在C语言中,下面的for循环语句最多可执行( )次。
for(x=0,y=0;(x<4)&&(y!=99);x++)
4、在C语言中,凡在函数中未指定存储类别的变量,其隐含的存储类别为( )。 5、链表是一种非常有用的动态数据结构,只有一个指针链的链表称为( )。 6、在C语言中,字符串不存放在一个变量中,而是存放在一个( )中。
7、对数组a[]进行初始化的数据为{2,4,6,8,10,12,14},则a[1]被初始化为( )。 8、若有语句int a=3,*p=&a;,则*p的值是( )。 9、&后跟简单变量名,表示该变量的( ),&后跟指针变量名,表示该指针变量的( )。
10、有语句struct point{int x;int y;}; point s,*p=&s; 则对结构体成员x的引用方法可以是s.x和( )。
三、选择题
1、int a=12;则执行语句a*=2+3后,a的值为( )。 ① 27 ② 60 ③ 38 ④ 0
2、下列变量名,( )是合法的
① my_car ② my-car ③ my.car ④ my&car
3、若a,b均为int型变量,x,y 均为float型变量,正确的输入函数调用是( ) ① scanf(“%d%f”,&a,&b); ② scanf(“%d%f”,&a,&x); ③ scanf(“%d%d”, a, b); ④ scanf(“%f%f”,x,y);
4、若a,b均为int型变量且有值,要输出a,b的值,正确的输出函数调用是( )。 ① printf(“%d%d”,&a,&b); ② printf(“%f%f”,a,b); ③ printf(“%f%d”, a,b); ④ printf(“%d%d”,a,b);
5、在下列的表达式中,能正确表示”a>=10或a<=0“的是 ( ) ① a>=10 or a<=0 ② a>=10 | a<=0 ③ a>=10 || a<=0 ④ a>=10 && a<=0
6、语句:
for (int k = 10; k>=0; k++)
cout< ① 编译通不过 ② 能运行, 但会死循环 ③ 能运行, 且不会死循环 ④ 以上说法都不对 7、定义在函数体内的变量具有( ) ① 函数作用域 ② 文件作用域 ③ 块作用域 ④ 函数原型作用域 8、下列说法中正确的是( ) ① 调用函数时,实参的类型、个数及顺序必须与函数定义时形参的类型、个数及顺序完全一致 ② 函数可以嵌套定义 ③ 函数必须有返回值,否则不能正确使用 ④ C语言中,有调用关系的所有函数必须放在同一个源程序文件中 9、设c为char型变量,输入以下数据:right? <回车> 以下程序段的输出结果是( ) while((c=getchar())!=’?’) putchar(c); ① right? ② right ③ right; ④ righ 10、若有说明:int a[20];则可以正确引用数组元素的表达式是:( ) ① a[20] ② a[3.5] ③ a(3) ④ a[1+2] 11、若程序中定义了以下函数 double add(double a,double b) { return (a+b); } 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是( ) ① double add(double a,b); ② double add(double,double); ③ double add(double b,double a); ④ double add(double x,double y); 12、以下关于数组的描述中,正确的是( ) ① 数组的大小是固定的,但可以有不同类型的数组元素 ② 数组的大小是可变的,但所有数组元素的类型必须相同 ③ 数组的大小是固定的,所有数组元素的类型必须相同 ④ 数组的大小是可变的,可以有不同类型的数组元素 13、设有语句:int a[10],*p=a;则下面的语句中,不正确的是( ) ① p++ ② (*p)++ ③ a[0]++ ④ a++ 14、执行下面的程序段后,*p等于( ) int a[5]={1,3,5,7,9},*p=a; p++; ① 1 ② 3 ③ 5 ④ 7 15、当说明一个结构体变量时,系统分配给它的内存是( ) ① 各成员所需内存量的总和 ② 结构体中第一个成员所需内存量 ③ 成员中占内存量最大者所需的容量 ④ 结构体中最后一个成员所需内存量 一、判断题(每题 1 分,共 10 分) B. int a[]=(0,1,2,3,4,5); C. char a={'A','B','C'}; D. char a[5]=\ 20,与定义char c[]={\不等价的是 A. char c[]=\ B. char c[]={'G','O','D','\\0'}; C. char c[5]={'G','O','D','\\0'}; D. char c[3]={\ 21,对于下面程序段,执行的结果是 char c[5]={?a?,?b?,?\\0?,?c?,?\\0?}; printf(“%s”,c); A. ?a??b? B. ab C. ab c D. a,b 22,设char Q='a', *p=&Q;下面说法中错误的是 A. *p='a' B. &*p=&Q C. &p=&Q D. *&Q='a' 23,有以下程序 main() {int a[]={1,2,3,4,5,6,7,8,9,0},*p; for(p=a;p<=a+9;p++)printf(\) 程序运行后的输出结果是 A. 1,2,3,4,5,6,7,8,9,0, B. 2,3,4,5,6,7,8,9,10,1, C. 0,1,2,3,4,5,6,7,8,9, D. 1,1,1,1,1,1,1,1,1,1, 24,若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是 A. a,p,&*a B. *&a,&a,*p C. &a,p,&*p D. *&p,*p,&a 25,设有语句:int a[10],*p =a;,则下面的语句中,不正确的是 A. p=p+1; B. *p=*p+1; C. a[0]=a[0]+1; D. a=a+1; 26,当int类型长度为2字节时,则类型unsigned int的值域范围为 A. 0至255 B. -256至255 C. -32768至32676 D. 0至65535 27,有如下程序: #include { int t2; t2=b*3; b=100; } void main() { int a=2; b=4; f1(); } 叙述正确的是: A. a和b都是静态变量。 B. a是静态变量,b是动态变量。 C. a和b都是全局变量。 D. a是局部变量,b是全局变量。 28,下面的for循环最多可执行________次。 for(x=0,y=0;(y!=99)&&(x<4);x++); A. 4次 B. 5次 C. 99次 D. 0次 29,下列判断char类型变量C1是否为数字的表达式中,哪个表达式最简单且正确。 A. '0'<=C1<='9' B. (C1>='0')&&(C1<='9') C. (C1>=0)&&(C1<=9) D. ('0'<=C1)||('9'>=C1) 30,若有以下的说明,则对初值中字符'a'的引用方式为________。 static struct { char ch; double x; char t; }c[2][2]={{{'a',35,'b'},{'c',45,'d'},{'a',86, 'm'}}}; A. c.ch B. c[0][1].ch C. c[1][1].ch D. c[0][0].ch 二,改错。 1,在C程序中,注释部分从/*开始,到*/结束。 2,switch语句中,case后面既可以跟常量,也可以跟已赋值的变量。 3,一个C语言程序中包含有多个函数时,按书写顺序从上到下执行各函数。 4,若一个函数的返回类型为void,则表示其没有返回值 5,student_name、_name、name8和name_8都是合法标识符。 6,不对自动(auto)数组进行初始化,数值型数组隐含初值为0,字符数组隐含初值空字符'\\0' 7,假设int型数组a的起始地址为2000,则元素a[3]的地址为:2000+4×2=2008。 8,结构化程序设计认为一个\好\程序主要应该是:程序短而紧凑。 9,如果知道整型变量a的地址是2000,可以直接用 int *pa=2000; 给指针变量pa赋值,使其指向变量a。 10,在C语言的if语句中,用作判断的表达式只能为逻辑表达式和关系表达式。 三,综合。 1,注意: 注意: 1.该源程序放在: d:\\ExamProg\\002\\test1.c 2.编译该程序时,请首先将程序中开头的功能说明注释掉或删除! 3.程序功能说明及源程序如下: /*下面程序的功能是:计算并输出500以内的最大的10个能被13或者17整除的自然数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结果。(注:只有一处错误!)*/ #include int total=0, mc=1, k=500; int pm[10],count=0; while( (k>=2) && mc<=10 ) { if ((k==0) || (k==0)) { pm[mc] = k; mc++; } k--; } for( k=1;k<=10;k++ ) total += pm[k-1]; printf(\ } (如果文本被遮住,请移动右边的滚动条。) 2,注意: 1.该源程序放在: d:\\ExamProg\\002\\test2.c 2.编译该程序时,请首先将程序中开头的功能说明注释掉或删除! 3.程序功能说明及源程序如下: /*求200到1000之间的双胞胎数的对数。双胞胎数:两素数差为2称为双胞胎数。例如227和229是一对双胞胎数,它们都是素数且差为2。*/ #include int prime(int x) { int k; for(k=2;k if(__________) break; if(k==x) return 1; else return 0; } void main( ) { int a,b,n=0; int prime(int x); for(a=200;a<=998;a++) { if(prime(a)==1) { b=a+2; if(__________) n++; } } printf(\} (如果文本被遮住,请移动右边的滚动条。) 3,计算下面公式的值。T=1/1!+1/2!+1/3!+??+1/m! 当m=10时的结果(按四舍五入保留3位小数)。(注:所有变量用float数据类型定义!)
正在阅读:
C语言习题06-21
最高人民法院关于适用《中华人民共和国民事诉讼法》执行程序若干问题的解释2008年12-18
初三英语Module 9 The generation gap外研社知识精讲03-26
2019人教部编版语文五年级上册第五单元和第六单元测试题附答案09-01
液压试卷2答案11-07
群文阅读导学案(已改)01-11
编译原理期末总复习题(含答案)11-28
谈做好中小学英语教学衔接的教学体会08-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 习题
- 语言
- 当前形势下特种设备安全监管工作的几点思考和建议
- 取名分析
- 家长珍藏:兰州市区小学、初中划片
- CCNA3习题第一章
- 给成功人士的一封信
- 2014保险代理人考试真题8套
- 四川省2017年安全生产管理要点:安全文化建设的操作步骤模拟试题
- CAD2008教程第十一章到第十四章(word版) - 图文
- 商务英语口语培训机构哪里好?
- 2014郑州大学网络教育组织与胚胎学第一章测试
- 江西省萍乡市2018届九年级下学期第一次中考模拟数学试题(
- x431-河南省郑州外国语中学2018届九年级下学期第三次模拟考试化
- 2016年三年级数学上册第3单元图形的运动一教材内容说明
- 背光源用扩散膜生产技术
- 车库顶板防水方案
- 现金流量表分析填列法编制技巧
- 苏木精
- (2015届步步高大一轮复习物理Word文档)第二章 第2课时 单元小
- 古田临水宫志
- 英语演讲稿(2)