《程序设计基础-C语言》(高教版第二版)期末复习卷(二)
|
2份
|
9页
|
70人阅读
|
0人下载
内容正文:
《程序设计基础-C语言》高等教育出版社
期末复习卷(二)
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共20小题,每题3分,共60分)
1、C语言程序中,预处理指令的开头符号是( )
A. * B. # C. & D. @
2、在Visual C++ 6.0中,新建C语言源程序文件的后缀名应选择( )
A. .cpp B. .c C. .h D. .txt
3、下列属于C语言长整型数据类型的关键字是( )
A. long B. bool C. double D. unsigned
4、若int x=5;,执行x += 3;后x的值是( )
A. 5 B. 8 C. 3 D. 15
5、输出双精度浮点型变量double pi=3.14159;,正确的printf格式符是( )
A. %f B. %lf C. %d D. %c
6、以下能作为if语句条件表达式的是( )
A. 3 B. x=5 C. a>b D. ;
7、执行while(1)循环时,若要退出循环需使用的关键字是( )
A. break B. continue C. exit D. return
8、定义int arr[8]={10,20};,则数组元素arr[1]的值是( )
A. 0 B. 10 C. 20 D. 随机值
9、若int m=8, n=5;,执行if(m%n==0) m/=n; else m+=n;后m的值是( )
A. 1 B. 13 C. 8 D. 5
10、switch语句的条件表达式不能是以下哪种类型( )
A. int B. char C. float D. short
11、执行for(int k=3; k>0; k--)循环,循环体执行的次数是( )
A. 2 B. 3 C. 4 D. 0
12、二维数组float score[4][3];,按行优先存储时,score[2][1]是第( )个元素(从1开始数)
A. 7 B. 8 C. 9 D. 10
13、C语言中,值传递的特点是( )
A. 实参和形参共用内存空间 B. 形参修改不会影响实参
C. 必须使用指针 D. 只能传递整型数据
14、若int arr[5]={1,2,3,4,5}, *q=arr+2;,则q指向的数组元素是( )
A. 2 B. 3 C. 4 D. 5
15、字符串"C program"中包含的字符个数(不含结束符)是( )
A. 8 B. 9 C. 10 D. 7
16、有函数int add(int x, int y){return x+y;}和int mul(int a, int b){return a*b;},则mul(add(2,3),4)的结果是( )
A. 9 B. 20 C. 14 D. 11
17、用递归函数计算n!,递归终止条件是( )
A. n=0或n=1 B. n>0 C. n<0 D. n=5
18、若char s[]="student", *p=s;,执行p+=3;后,*p的值是( )
A. 'd' B. 'e' C. 'n' D. 't'
19、以下函数中,返回值为指针类型的是( )
A. int fun(int a){return a;}
B. char *fun(char *s){return s+1;}
C. void fun(int *p){p=5;}
D. float fun(float x){return x2;}
20、实现字符串逆序输出的核心思路是( )
A. 交换字符串首尾对应字符 B. 统计字符串长度后直接输出
C. 复制字符串到新数组 D. 遍历字符串并逐个打印
2、 填空题(本题共10小题,每题2分,共20分)
1. C语言主函数的返回值类型默认是 。
2. 华氏温度转摄氏温度的公式为 C = (F - 32) \times 5/9,若float F=86;,则C的值是 。
3. 输出长整型变量long num=123456;,应使用的printf格式符是 。
4. switch语句中,匹配所有未定义分支的关键字是 。
5. 执行int k=1, pro=1; do{pro*=k; k++;}while(k<=5);后,pro的值是 。
6. 定义二维数组int mat[3][4]={{1},{2,3}};,则mat[1][1]的值是 。
7. C语言中,函数声明的结尾必须加上 。
8. 用递归计算斐波那契数列时,第n项的递归表达式为 F(n)=F(n-1)+F(n-2),其递归终止条件是 。
9. 若char str[]="computer", *p=str;,则*(p+5)对应的字符是 。
10. 指针变量int *ptr指向数组int arr[5]的首元素,将数组第三个元素赋值为10的表达式是 。
3、 判断题(本题共10小题,每题2分,共20分)
1. Visual C++ 6.0中,新建C语言程序需选择“Win32 Console Application”工程类型。( )
2. C语言中,标识符“Test”和“test”表示同一个变量。C语言中char类型在内存中占用2个字节。( )
3. 赋值运算符的结合性是自右向左。( )
4. putchar()函数的参数可以是字符常量或整型常量。( )
5. if语句后若有多条执行语句,必须用大括号包裹。( )
6. do-while循环的条件表达式末尾必须加分号。( )
7. C语言中数组名是一个地址常量,不能被赋值。( )
8. 递归函数的调用层数过多会导致栈溢出错误。( )
9. 指向同一数组的两个指针变量可以进行大小比较运算。( )
10. C语言中可以直接用char str1[] = str2;实现字符串拷贝。( )
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
《程序设计基础-C语言》高等教育出版社
期末复习卷(二)
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共20小题,每题3分,共60分)
1、C语言程序中,预处理指令的开头符号是( )
A. * B. # C. & D. @
【答案】B
【解析】C语言预处理指令均以#开头,如#include、#define,其余选项无此用途。
2、在Visual C++ 6.0中,新建C语言源程序文件的后缀名应选择( )
A. .cpp B. .c C. .h D. .txt
【答案】B
【解析】.c是C语言源文件后缀,.cpp是C++文件,.h是头文件,.txt是文本文件,无法编译。
3、下列属于C语言长整型数据类型的关键字是( )
A. long B. bool C. double D. unsigned
【答案】A
【解析】long对应长整型,bool是布尔型,double是双精度浮点型,unsigned是无符号修饰符。
4、若int x=5;,执行x += 3;后x的值是( )
A. 5 B. 8 C. 3 D. 15
【答案】B
【解析】x+=3等价于x=x+3,5+3=8,属于复合赋值运算符的基础用法。
5、输出双精度浮点型变量double pi=3.14159;,正确的printf格式符是( )
A. %f B. %lf C. %d D. %c
【答案】B
【解析】%lf是double类型专属格式符,%f用于float,%d用于整型,%c用于字符型。
6、以下能作为if语句条件表达式的是( )
A. 3 B. x=5 C. a>b D. ;
【答案】C
【解析】if条件需为关系/逻辑表达式,a>b是关系表达式;3是常量(语法允许但无意义),x=5是赋值表达式,;是空语句,均不符合规范使用场景。
7、执行while(1)循环时,若要退出循环需使用的关键字是( )
A. break B. continue C. exit D. return
【答案】A
【解析】break用于强制退出当前循环;continue是跳过本次循环,exit是退出程序,return是退出函数。
8、定义int arr[8]={10,20};,则数组元素arr[1]的值是( )
A. 0 B. 10 C. 20 D. 随机值
【答案】C
【解析】C语言数组下标从0开始,arr[0]=10,arr[1]=20,未初始化元素默认值为0。
9、若int m=8, n=5;,执行if(m%n==0) m/=n; else m+=n;后m的值是( )
A. 1 B. 13 C. 8 D. 5
【答案】B
【解析】m%n=8%5=3≠0,执行else分支,m=m+n=8+5=13。
10、switch语句的条件表达式不能是以下哪种类型( )
A. int B. char C. float D. short
【答案】C
【解析】switch条件只能是整型及兼容类型(int、char、short),浮点型无法精准匹配,不支持。
11、执行for(int k=3; k>0; k--)循环,循环体执行的次数是( )
A. 2 B. 3 C. 4 D. 0
【答案】B
【解析】k依次为3、2、1,均满足k>0,共3次,k=0时循环终止。
12、二维数组float score[4][3];,按行优先存储时,score[2][1]是第( )个元素(从1开始数)
A. 7 B. 8 C. 9 D. 10
【答案】D
【解析】行下标2代表第3行,列下标1代表第2列;前2行共2×3=6个,第3行前1个,总计6+3+1=10。
13、C语言中,值传递的特点是( )
A. 实参和形参共用内存空间 B. 形参修改不会影响实参
C. 必须使用指针 D. 只能传递整型数据
【答案】B
【解析】值传递是实参拷贝给形参,二者独立内存,形参修改不影响实参;无需指针,支持多种数据类型。
14、若int arr[5]={1,2,3,4,5}, *q=arr+2;,则q指向的数组元素是( )
A. 2 B. 3 C. 4 D. 5
【答案】B
【解析】arr是数组首地址,arr+2是首地址偏移2个元素,指向arr[2],值为3。
15、字符串"C program"中包含的字符个数(不含结束符)是( )
A. 8 B. 9 C. 10 D. 7
【答案】C
【解析】字符串不含'\0',逐个计数为C、空格、p、r、o、g、r、a、m,共9个。
16、有函数int add(int x, int y){return x+y;}和int mul(int a, int b){return a*b;},则mul(add(2,3),4)的结果是( )
A. 9 B. 20 C. 14 D. 11
【答案】B
【解析】函数嵌套调用先算内层,add(2,3)=5,再算mul(5,4)=20。
17、用递归函数计算n!,递归终止条件是( )
A. n=0或n=1 B. n>0 C. n<0 D. n=5
【答案】A
【解析】数学定义0!和1!均为1,作为递归终止条件;n>0是递归条件,n<0无阶乘意义。
18、若char s[]="student", *p=s;,执行p+=3;后,*p的值是( )
A. 'd' B. 'e' C. 'n' D. 't'
【答案】A
【解析】p初始指向数组首元素s[0],p+=3等价于指针偏移3位,指向s[3],s数组为"s t u d e n t",s[3]对应字符'd'。
19、以下函数中,返回值为指针类型的是( )
A. int fun(int a){return a;}
B. char *fun(char *s){return s+1;}
C. void fun(int *p){p=5;}
D. float fun(float x){return x2;}
【答案】B
【解析】函数返回值类型看函数名前标识符,char *是字符指针类型;A是int,C是void(无返回值),D是float。
20、实现字符串逆序输出的核心思路是( )
A. 交换字符串首尾对应字符 B. 统计字符串长度后直接输出
C. 复制字符串到新数组 D. 遍历字符串并逐个打印
【答案】A
【解析】核心思路是先获取字符串长度,再交换第i个和倒数第i个字符(首尾对应交换),其余思路无法实现逆序。
2、 填空题(本题共10小题,每题2分,共20分)
1. C语言主函数的返回值类型默认是 。
【答案】int
2. 华氏温度转摄氏温度的公式为 C = (F - 32) \times 5/9,若float F=86;,则C的值是 。
【答案】30
3. 输出长整型变量long num=123456;,应使用的printf格式符是 。
【答案】%ld
4. switch语句中,匹配所有未定义分支的关键字是 。
【答案】default
5. 执行int k=1, pro=1; do{pro*=k; k++;}while(k<=5);后,pro的值是 。
【答案】120
6. 定义二维数组int mat[3][4]={{1},{2,3}};,则mat[1][1]的值是 。
【答案】3
7. C语言中,函数声明的结尾必须加上 。
【答案】分号
8. 用递归计算斐波那契数列时,第n项的递归表达式为 F(n)=F(n-1)+F(n-2),其递归终止条件是 。
【答案】F(1)=1、F(2)=1(或n=1或n=2时返回1)
9. 若char str[]="computer", *p=str;,则*(p+5)对应的字符是 。
【答案】t
10. 指针变量int *ptr指向数组int arr[5]的首元素,将数组第三个元素赋值为10的表达式是 。
【答案】*(ptr+2)=10(或ptr[2]=10)
3、 判断题(本题共10小题,每题2分,共20分)
1. Visual C++ 6.0中,新建C语言程序需选择“Win32 Console Application”工程类型。( )
【答案】正确。VC6.0中C语言程序需先建控制台工程,再添加.c源文件,此为固定步骤。
2. C语言中,标识符“Test”和“test”表示同一个变量。C语言中char类型在内存中占用2个字节。( )
【答案】错误。标准C中char类型固定占用1个字节,占用2字节的是wchar_t(宽字符)。
3. 赋值运算符的结合性是自右向左。( )
【答案】正确。C语言赋值运算符结合性为自右向左,如a=b=c等价于a=(b=c)。
4. putchar()函数的参数可以是字符常量或整型常量。( )
【答案】正确。putchar()接收字符型或对应ASCII码的整型,如putchar('a')和putchar(97)效果一致。
5. if语句后若有多条执行语句,必须用大括号包裹。( )
【答案】正确。if后无大括号仅能控制紧跟的1条语句,多条语句需用{}组成复合语句。
6. do-while循环的条件表达式末尾必须加分号。( )
【答案】正确。do-while语法格式为do{循环体}while(条件); 末尾分号不可省略,是语法要求。
7. C语言中数组名是一个地址常量,不能被赋值。( )
【答案】正确。数组名代表数组首元素地址,是常量,不能赋值,如arr=10; 会报错。
8. 递归函数的调用层数过多会导致栈溢出错误。( )
【答案】正确。递归调用会占用栈内存存储函数上下文,层数过多会耗尽栈空间,触发栈溢出。
9. 指向同一数组的两个指针变量可以进行大小比较运算。( )
【答案】正确。指向同一数组的指针,本质是内存地址,地址有高低之分,可进行>、<、==等比较。
10. C语言中可以直接用char str1[] = str2;实现字符串拷贝。( )
【答案】错误。数组名是地址常量,不能直接赋值,字符串拷贝需用strcpy函数或手动遍历赋值。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$