2022年“C语言程序设计”复习题 .pdf
《2022年“C语言程序设计”复习题 .pdf》由会员分享,可在线阅读,更多相关《2022年“C语言程序设计”复习题 .pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、“C 语言程序设计”期末复习题一单项选择题1组成 C 程序的基本单位C_。A)表达式与语句B)若干文件C)函数D)main 函数2下列为字符常量的是_C_。A)HE B)I C)Z D)She 3若变量 c 为 char 类型,能正确判断c 为小写字母的表达式是_d_。A)a=c=a)|(c=z)C)(a=c)D)(c=a)&(c=a&ch=z)?ch:ch-A+a;printf(%c,ch);A)A B)a C)Z D)z 23 已知 int x=10,y=5;执行语句x%=y;后 x 的值是(A)。A、0 B、1 C、5 D、2*24以下有关宏替换的叙述错误的是_A_。A)宏名必须用大写字
2、母表示B)宏替换不占用运行时间C)宏名不具有类型D)宏替换只是字符替换25以下对二维数组a 的声明正确的是 _C_。A)int a 3;B)int a(3,4);C)int a 14;D)int a(3)(4);26如果在一个函数的复合语句中定义一个变量,以下叙述正确的是_B_。A)该变量在该函数中有效B)该变量只在该复合语句中有效C)该变量为不合法的变量D)该变量在本程序范围内有效27能表示 x 为偶数的表达式是_A_。A)x%2=0 B)x%2=1 C)x%2 D)x%2!=0 28C 语言中运算对象必须是整型的运算符是_A_。A)%B)/C)=D)=29下列数组定义正确的是_D_。A)i
3、nt a5,b2,3;B)char no(30);C)char x;D)int x5=1,2,3;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 20 页 -30变量定义如下:int x;float y;以下输入语句正确的是_C_。A)scanf(%f%f,&y,&x);B)scanf(%f%d,y,x);C)scanf(%f%d,&y,&x);D)scanf(%5.2f%2d,&y,&x);31下列函数头中形参说明错误的是_A_。A)float average(float array9,n)B)float average(float*array,int n)B)float av
4、erage(float array ,int n)C)float average(float array,int n)32函数形参与实参之间的传递是“值传递”,以下叙述正确的是_B_。A)实参和与其对应的形参共用一个存储单元B)实参和与其对应的形参各占用独立的存储单元C)当实参和与其对应的形参同名时才共用一个存储单元D)形参是形式的,不占用存储单元33以下 if 语句错误的是 _C_。A)if(xy)x+;y+;else x-;y-;B)if(x)x+y;C)if(xy);D)if(x!=y)scanf(%d,&x);else x+;34以下程序的输出结果是()void fun(int*p,i
5、nt b)*p=2;b=5;main()int a=3,b=7;fun(&a,b);printf(“%d,n”,a,b);A、2,5 B、3,7 C、3,5 D、2,7 35t 为 int 类型,进入下面的循环之前t 的值为 0,以下叙述正确的是_。while(t=l)A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法D)以上说法都不对36以下说法正确的是_。A)C 语言源程序无论包含了多少函数,总是从main 函数开始执行。B)main 是由 C 语言提供的,并不需要用户自己编写。C)调用 C 语言标准库函数时,程序中要用到include 命令,它也是C 语言的
6、一种语句。D)在 C 语言中,要调用的函数必须在main 函数中定义。37若 0=ic|a+cb|c+ba)printf(这三条边能组成一个三角形n);C)int a,b,c;scanf(%d%d%d,&a,&b,&c);if(a=b&b=c)printf(这是一个等边三角形n);D)int a,b,c;scanf(%d%d%d,&a,&b,&c);if(a=b|b=c)printf(这是一个等腰三角形n)*40下列关于#include 命令的叙述中,错误的是_。A)#include 命令中,文件名可以用双引号或尖括号括起来B)一个被包含文件中又可以包含另一个被包含文件C)一个#include
7、 命令中可以指定多个被包含文件D)一个#include 命令中只能指定一个被包含文件41若 a为整型变量,则以下语句_。a=-2L;printf(“%dn”,a);A)赋值不合法B)输出值为-2 C)输出为不确定值D)输出值为2 42若有说明语句:int y 4=0,0,0,0,0,0;则正确的叙述是 _。A)数组 y 的每个元素都可得到初值0 B)二维数组 y 的行数为 1 C)该说明等价于int y04=0;D)有元素 y00 至 y05 可得到初值,其余元素均得不到初值0 43若int 类型数据占两个字节,则下列语句的输出为_。int k=-1;printf(“%d,%un”,k,k);
8、A)-1,-1 B)-1,32767 C)-1,32768 D)-1,65535 44已知:char a;int b;float c;double d;执行语句 c=a+b+c+d;后,变量 c 的数据类型是 _。A)int B)char C)double D)float 45若 int i=10;执行下列程序后,变量i 的最后结果是()switch(i)case 0:i+=1;case 10:i+=1;case 11:i+=1;default:i+=1;break;A、10 B、11 C、12 D、13 46若有以下变量说明和数据的输入方式,则正确的输入语句为_。变量说明:float x1,
9、x2;数据的输入方式:4.52 3.5 A)scanf(“%f,%f”,&x1,&x2);B)scanf(“%f%f”,&x1,&x2);C)scanf(“%3.2f,%2.1f”,&x1,&x2);D)scanf(“%3.2f%2.1f”,&x1,&x2);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 20 页 -47若变量已正确定义,与语句if(ab)k=0;else k=1;等效的是 _。A)k=(ab)?1:0 B)k=ab;C)k=ab?0:1;48若有定义:int x,*pb;则正确的赋值表达式是_。A)pb=&x B)pb=x C)*pb=&x D)*pb=*x
10、49已知:int a,*p=&a;则为了得到变量a的值,下列错误的表达式为_。A)p0 B)*p C)&*a D)*&a 50在语言中,引用数组元素时,其数组下标的数据类型允许是_。A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式51若有定义:int b5;则以下对 b 数组元素的正确引用是_。A)*&b5 B)b+2 C)*(*(b+2)D)*(b+2)52设有定义语句char s=123;,则表达式s3的值是 _。A)1 B)3 C)0 D)语法出错53语句 if(!i)i+;中的条件表达式!i 等价于 _。A)i=0 B)i!=1 C)i!=0 D)-i 54设有
11、int x,y;以下语句判断x 和 y 是否相等,正确的说法是该语句_。if(x=y)printf(x is equal to y.);A)语法错B)不能判断x 和 y 是否相等C)编译出错D)能判断 x 和 y 是否相等55C 语言中规定,if 语句的嵌套结构中,else总是与 _配对。A)与最近的if 配套B)与第一个if 配套C)按缩进位置相同的if 配套D)与最近的且尚未配对的if 配套56以下有关switch 语句的正确说法是_。A)break语句是语句中必须的一部分B)在 switch 语句中可以根据需要使用或不使用break 语句C)break A语句在 switch 语句中不可
12、以使用D)在 switch 语句中的每一个case都要用 break语句57若有下面的变量定义,以下语句中合法的是()int i,a10,*p;A、p=a+2;B、p=a5;C、p=a2+2;D、p=&(i+2);58当执行以下程序时,_。#include void main()int a;while(a=5)printf(%d,a-);A)循环体将执行5 次B)循环体将执行0 次 C)循环体将执行无限次D)系统会死机。59以下函数的类型是_。int sum(double x,double y)double s;s=x+y;return s;A)字符型B)不确定C)整型D)实型60以下叙述不正
13、确的是_。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 20 页 -A)一个 C 源程序文件必须包含一个main()函数B)一个 C 源程序文件可由一个函数组成C)一个 C 源程序文件是一个编译单位D)一个 C 源程序文件可由多个函数组成61若用数组名作为函数调用时的参数,则实际上传递给形参的是_。A)数组元素的个数B)数组的第一个元素值C)数组中全部元素的植D)数组首地址62C 语言允许函数值类型的缺省定义,此时该函数值隐含的类型是_。A)long 型)float 型C)double 型D)int 型63以下叙述正确的是_。A)函数的定义和函数的调用均不可以嵌套B)函数的定义
14、和函数的调用均可以嵌套C)函数的定义可以嵌套,但函数的调用均不可以嵌套D)函数的定义不可以嵌套,但函数的调用均可以嵌套64凡是在函数中未指定存储类别的局部变量,其隐含的存储类别是_。A)静态(static)B)外部(extern)C)自动(auto)寄存器(register)65若已定义x 和 y 为 double 类型,则表达式:xl,yx32 结果是()A、1 B、2 C、2.0 D、2.5 66C 语言的编译系统对宏命令的处理是_。A)在程序连接时进行的B)在对源程序中的其它语句编译之前进行的C)在程序运行时进行的D)和 C 程序中的其它语句同时进行的67下列对字符串的定义中,错误的是_
15、 _。A)char str5=abcde B)char str=abcde C)char*str=abcde D)char str=a,b,c,d,e,0 68若有定义char x=12345;char y=1,2,3,4,5;则。A)x 数组与 y 数组的长度相同B)x 数组长度大于y 的长度C)x 数组长度小于y 数组长度D)x 数组等价与 y 数组69有如下程序,该程序的输出结果是()long fib(int n)if(n2)return(fib(n-1)+fib(n-2);else if(n=2)return(2);else return(1);main()printf(“%dn”,f
16、ib(4);A、3 B、4 C、5 D、6 70.设有定义“int a 3,b,*p&a;”,则下列语句中使b 不为 3 的语句是()A、b*&a B、b*p C、ba D、b*a 71.以下选项中不能正确把cl 定义成结构体变量的是()A)typedef struct B)struct color cl int red;int red;int green;int green;int blue;int blue;COLOR;COLOR cl;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 20 页 -C)struct color D)struct int red;int red;
17、int green;int green;int blue;int blue;cl;cl;72.以下能正确定义一维数组的选项是A)int num;B)#define N 100 int numN;C)int num0.100;D)int N=100;int numN;73.下列选项中正确的语句组是A)char s8;s=Beijing;B)char*s;s=Beijing;C)char s8;s=Beijing;D)char*s;s=Beijing;74.已定义以下函数fun(int*p)return*p;该函数的返回值是A)不确定的值B)形参 p 中存放的值C)形参 p 所指存储单元中的值D)
18、形参 p 的地址值75.下列函数定义中,会出现编译错误的是A)max(int x,int y,int*z)B)int max(int x,y)*z=xy?x:y;int z;z=xy?x:y;return z;C)max(int x,int y)D)int max(int x,int y)int z;return(xy?x:y);z=xy?x:y;return(z);76.有以下程序#include main()char str20=Hello,Beijing,*p=str;printf(%dn,strlen(p+20);程序运行后的输出结果是A)0 B)5 C)7 D)20 77.有以下程序
19、main()int a33;*p,i;p=&a00;for(i=0;i9;i+)pi=i+1;printf(%d n,a12);程序运行后的输出结果是A)3 B)6 C)9 D)2 78.有以下程序main()char s=ABCD,*p;for(p=s+1;pnum B)p-numC)(*p).num D)stu3.age85.有如下程序#include main()FILE*fp1;fp1=fopen(f1.txt,w);fprintf(fp1,abc);fclose(fp1);若文本文件f1.txt 中原有内容为:good,则运行以上程序后文件f1.txt 中的内容为A)goodabc
20、B)abcdC)abc D)abcgood 86.有以下程序main()int x=3,y=2,z=1;printf(%dn,x/y&z);程序运行后的输出结果是A)3 B)2 C)1 D)087.以下程序的输出结果是main()char st20=hello0t;printf(%d%d n,strlen(st),sizeof(st);A)9 9 B)5 20 C)13 20 D)20 20 88.整型变量 x 和 y 的值相等、且为非0 值,则以下选项中,结果为零的表达式是A)x|y B)x|y C)x&y D)x y 89.已定义以下函数fun(char*p2,char*p1)while(
21、*p2=*p1)!=0)p1+;p2+;名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 20 页 -函数的功能是A)将 p1 所指字符串复制到p2 所指内存空间B)将 p1 所指字符串的地址赋给指针p2 C)对 p1 和 p2 两个指针所指字符串进行比较D)检查 p1 和 p2 两个指针所指字符串中是否有0 90.以下程序的输出结果是#define M(x,y,z)x*y+z main()int a=1,b=2,c=3;printf(%dn,M(a+b,b+c,c+a);A)19 B)17 C)15 D)12 二填空1、一个变量的地址,可以通过在变量前加&符号来得到。2、将一维数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年“C语言程序设计”复习题 2022 语言程序设计 复习题
限制150内