桂林电子科技大学历年C语言程序设计期末

本试卷为桂林电子科技大学历年C语言程序设计期末,题目包括:单项选择题,判断题,编程题。

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

C语言程序设计期末

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

(  C  )
1、若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是________。
int t[3][3],
*pt[3],k;
for(k=0;k<3;k++) pt[k]= &t[k][0];
A、t[2][0]
B、t[2][2]
C、t[1][2]
D、t[2][1]
(  C  )
2、下面程序段的运行结果是________. int n=0; while(n++<=2); printf("%d",n);
A、2
B、3
C、4
D、有语法错
(  B  )
3、有以下程序
main()
{
int i,t[][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++) printf("%d",t[2-i][i]);
}
程序执行后的输出结果是________。
A、7 5 3
B、3 5 7
C、3 6 9
D、7 5 1
(  C  )
4、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是________。
A、char s[10]=”abcdefg”;
B、char t[]=”abcdefg”,*s=t;
C、char s[10];s=”abcdefg”;
D、char s[10];strcpy(s,”abcdefg”);
(  A  )
5、if语句的基本形式为:if(表达式)语句,其中"表达式"________。
A、可以是任意合法的表达式
B、必须是逻辑表达式
C、必须是逻辑表达式或关系表达式
D、必须是关系表达式
(  B  )
6、如果将布尔常量值true赋值给一个整型变量,则整型变量的值为________。
A、0
B、-1
C、True
D、False
(  B  )
7、用高级程序设计语言编写的程序,________。
A、计算机能直接执行
B、具有良好的可读性和可移植性
C、执行效率高,但可读性差
D、依赖于具体机器,可移植性差
(  B  )
8、递归算法的执行过程一般来说可先后分成______和______两个阶段。
A、试探
B、递推
C、枚举
D、分析
(  C  )
9、用高级程序设计语言编写的程序称为________。
A、目标程序
B、可执行程序
C、源程序
D、伪代码程序
(  C  )
10、以下关于结构化程序的说法中,正确的是________。
A、结构化程序由单入口、单出口和循环3种结构组成
B、结构化程序由顺序、单入口和单出口3种结构组成
C、结构化程序由顺序、循环和GOTO语句结构组成
D、结构化由顺序、循环、循环和分支3种结构组成
(  C  )
11、设有如下定义:char*aa[2]="abcd","abcd",则以下说法中正确的是________。
A、aa数组中元素的值分别是"abcd","ABCD";
B、aa是指针变量,它指向含有两个数组元素的字符型一维数组
C、aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D、aa数组的两个元素中各自存放了字符‘a’和‘A’的地址
(  D  )
12、有以下函数:fun(char *a,char *b)
{
while((*a!='\0')&&(*b!='\0')&&(*a==*b))
{
a++;
b++;
}
return(*a-*b);
}
该函数的功能是______。
A、计算 a 和 b 所指字符串的长度之差
B、将 b 所指字符串连接到 a 所指字符串中
C、将 b 所指字符串连接到 a 所指字符串后面
D、比较 a 和 b 所指字符串的大小
(  D  )
13、设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2); 语句为变量a1和a2赋数值 10和20,为变量c1和c2赋字符x和y。以下所示的输入形式中正确的是(注:口代表空格字符)
A、10口X口20口Y<回车>
B、10口X20口Y<回车>
C、10口X<回车> 20口Y<回车>
D、10X<回车> 20Y<回车>
(  D  )
14、程序设计语言中________。
A、while 循环语句的执行效率比do-while 循环语句的执行效率高
B、while 循环语句的循环体执行次数比循环条件的判断次数多1,而do-while 语句的循环体执行次数比循环条件的判断次数少1
C、while 语句的循环体执行次数比循环条件的判断次数少1,而do-while 语句的循环体执行次数比循环条件的判断次数多1
D、while 语句的循环体执行次数比循环条件的判断次数少1,而do-while 语句的循环体执行次数等于循环条件的判断次数
(  C  )
15、若有以下定义,则正确的语句是________。
union data
{
int i;
char c;
float f;
} a;
int n;
A、c=5;
B、a={
2,'a',1.2};
C、printf("%d\n",a);
D、n=a;
(  B  )
16、下列各语句序列中,能够将变量u.s 中最大值赋值到变量t 中的是________。
A、if(u>s)t=u; t=s;
B、t=s; if(u>s)t=u;
C、if(u>s)t=s; else t=u;
D、t=u; if(u>s)t=s;
(  A  )
17、以下关于逻辑运算符两侧运算对象的叙述中正确的是________。
A、可以是任意合法的表达式
B、只能是整数 0 或非 0 整数
C、可以是结构体类型的数据
D、只能是整数 0 或 1
(  A  )
18、char a1[]="abc",a2[80]="1234"; 将a1串连接到a2串后面的语句是________。
A、strcat(a2,a1);
B、strcpy(a2,a1);
C、strcat(a1,a2);
D、strcpy(a1,a2);
(  D  )
19、若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10}
, *p=a;
不能表示a数组元素的表达式是________。
A、*p
B、a[9]
C、*p++
D、a[*p-a]
(  C  )
20、下列各定义数组的语句中不正确的是________。
A、int a[1][3];
B、int x[2][2]={1,2,3,4};
C、int x[2][ ]={1,2,4,6};
D、int m[ ][3]={ 1,2,3,4,5};

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

(   T  )
1、continue 只能用于循环体中。 
(   T  )
2、使用strcpy(字符数组,字符串)函数时,字符数组长度必须足够大。 
(   F  )
3、以"a"方式打开一个文件时,文件指针指向文件首。 
(   F  )
4、在标准c中,变量定义一定要出现在函数开始部分 
(   T  )
5、在switch 语句中, case 后可不加" {}"。 
(   F  )
6、定义char *string= "string? "是将字符串的值赋给指针变量string 。 
(   T  )
7、通常字符常量的长度为1 个字节 
(   F  )
8、fseek函数一般用于文本文件。 
(   T  )
9、fseek函数一般用于二进制文件。 
(   F  )
10、表达式语句和表达式没有什么区别。 

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

1、试利用指向结构体的指针编制一程序,实现输入3个学生的学号、数学期中和期末考试成绩。然后计算其平均成绩并输出成绩表,使用结构体实现。
2、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
3、编程判断输入的字符串是否为“回文”。所谓“回文”是指顺读和倒读都一样,如abcba。