云南农业大学2023年计算机C语言期末练习

本试卷为云南农业大学2023年计算机C语言期末练习,题目包括:单项选择题,判断题,编程题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。

计算机C语言期末练习

一、单项选择题 (共20题,每题2分,共计40分)

(  B  )
1、若有以下程序段: int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf("%d,%d,%a",a,b,c);执行后的输出结果是________。
A、3,0,-10
B、0,0,5
C、-10,3,-10
D、3,0,3
(  B  )
2、将二进制数101101101111转换成十六进制数是________。
A、5557
B、B6F
C、7555
D、F6B
(  C  )
3、在c语言程序中,表达式5%2的结果是______。
A、2.5
B、2
C、1
D、3
(  D  )
4、若有以下说明和语句: int c[4][5],(*p)[5]; p=c; 能够正确引用c数组元素的是________。
A、p+l
B、*(p+3)
C、*(p+1)+3
D、*(p[0]+2)
(  B  )
5、若有定义:int a[4][10]; 则以下选项中对数组元素a[i][j]引用错误的是______。 (0<=i<4,0<=j<10)
A、*(&a[0][0]+10*i+j)
B、*(a+i)+j
C、*(*(a+i)+j)
D、*(a[i]+
(  C  )
6、变量a所占的内存字节数是______。
union u{
char st[4];
int i;
long l;
};
struct A {
int c;
union u;
} a;
A、4
B、5
C、6
D、8
(  D  )
7、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是________。
A、函数调用可以作为独立的语句存在
B、函数调用可以无返回值
C、函数调用可以出现在表达式中
D、函数调用可以作为一个函数的形参
(  A  )
8、已知有数组定义 char a[3][4]; 下列表达式中错误的是________。
A、a[2]="WIN"
B、strcpy(a[2],"WIN")
C、a[2][3]='W'
D、a[0][1]=a[0][1]
(  B  )
9、以下程序的功能是计算s=1+12+123+1234+12345。
#include <stdio.h>
main()
{
int t=0,s=0,i;
for(i=1;i<=5;i++) {
t=i+_____;
s=s+t;
}
printf("s=%d\n",s);
}
则______部分是________。
A、t
B、t*10
C、t*100
D、t+10
(  B  )
10、下列变量定义中,错误的是______。
A、int x=3;
B、float f;d;
C、String s="Hello!";
D、boolean b=true;
(  A  )
11、下列语句中,正确的是______。
A、static char str[]="China";
B、static char str[];str="China";
C、static char str1[5],str2[]="China";strl=str2;
D、static char str1[],str2[];str2="China";strcpy(str1,str2);
(  D  )
12、有以下程序段int n=0,p;
do
{
scanf("%d",&p);
n++;
}
while(p!=12345&&n<3);
此处do-while循环的结束条件是______。
A、p的值不等于12345并且n的值小于3
B、p的值等于12345并且n的值大于等于3
C、p的值不等于12345或者n的值小于3
D、p的值等于12345或者n的值大于等于3
(  C  )
13、下列哪一项不是表达式
A、1
B、a+b
C、@a;
D、c=a+b
(  B  )
14、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 ________。
A、从左起输出该字符串,右补空格
B、按原字符长从左向右全部输出
C、0
D、输出错误信息
(  C  )
15、c 语言中的标识符第一个字符。
A、必须为字母
B、必须为下划线
C、必须为字母或下划线
D、可以是字母, 数字和下划线中任一种字符
(  D  )
16、以下合法的常量是________。
A、-80.0e
B、-080
C、-8e1.0
D、-80.
(  B  )
17、以下叙述中正确的是________。
A、在 C 语言中,逻辑真值和假值分别对应 1 和 0
B、关系运算符两边的运算对象可以是语言中任意合法的表达式
C、对于浮点变量 x 和 y,表达式:x==y 是非法的,会出编译错误
D、分支结构是根据算术表达式的结果来判断流程走向的
(  B  )
18、C语言程序是由____组成
A、一个主程序和若干子程序
B、函数
C、若干过程
D、若干子程序
(  A  )
19、结构体类型的定义允许嵌套是指()。
A、成员是已经或正在定义的结构体型
B、成员可以重名
C、结构体型可以派生
D、定义多个结构体型
(  A  )
20、函数 rewind 的作用是()。
A、使位置指针重新返回文件的开头
B、将位置指针指向文件中所要求的特定位置
C、使位置指针指向文件的末尾
D、使位置指针自动移至下一个字符位置

二、判断题 (共10题,每题2分,共计20分)

(   T  )
1、在c语言中,字符数组可以存放字符串。( ) 
(   T  )
2、c程序函数体是由左右花括号{}括起来的部分。 
(   F  )
3、c语言中简单变量作为实参时,它和对应的形参之间的数据传递方式是双向值传递。 
(   T  )
4、强制类型转换时,原来变量的类型不会改变。 
(   T  )
5、关系表达式的值只能为1和0 
(   F  )
6、调用strcmp函数比较字符串大小时,通常较长的字符串会较大。 
(   F  )
7、若定义a[][2]={1,2,3,4,5,6,7};
则a数组中行的大小无法确定。 
(   F  )
8、要使用标准输入、输出函数,正常情况下应该在文件的开头加上以下内容: #include<graphics.h>或#include"graphics.h"。 
(   T  )
9、c语言程序可以有多个文件。 
(   T  )
10、while语句的一般形式如下,其中的循环体语句只能是一条语句。while (表达式) 循环体语句 

三、编程题 (共3题,每题0分,共计40分)

1、编写程序: 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
2、给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。
输入格式:
输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。
输出格式:
在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。
输入样例:
3
Programming in C
21.5
Programming in VB
18.5
Programming in Delphi
25.0
输出样例:
25.00, Programming in Delphi
18.50, Programming in VB
3、编写程序,将用户输入的字符串中删除所有的数字,然后输出剩余的字符。