武汉轻工大学往年C语言期末冲刺卷

本试卷为武汉轻工大学往年C语言期末冲刺卷,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。

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

C语言期末冲刺卷

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

(  C  )
1、在嵌套使用if语句时,c语言规定else总是________。
A、和之前与其具有相同缩进位置的if配对
B、和之前与其最近的if配对
C、和之前与其最近的且不带else的if配对
D、和之前的第一个if配对
(  A  )
2、若有定义:"int a[2][3];",则对a数组的第i行第j列元素的正确引用为( )。
A、*(*(a+i)+j)
B、(a+i)[j]
C、*(a+j+j)
D、*(a+i)+j
(  A  )
3、运算符________的优先级最高。
A、[ ]
B、+=
C、?:
D、++
(  D  )
4、以下叙述中不正确的是________。
A、在不同的函数中可以使用相同名字的变量
B、函数中的形式参数是局部变量
C、在一个函数内定义的变量只在本函数范围内有效
D、在一个函数内的复合语句中定义的变量在本函数范围内有效
(  A  )
5、若定义static int a[2][2]={1,2,3,4 },则a数组的各数组元素分别为______。
A、a[0][0]=1、a[0][1]=2、at[1][0]=3、a[1][1]=4
B、a[0][0]=1、a[0][1]=3、a[1][0]=2、a[1][1]=4
C、a[0][0]=4、a[0][1]=3、a[1][0]=2、s[1][1]=1
D、a[0][0]=4、a[0][1]=2、a[1][0]=3、a[1][1]=1
(  A  )
6、以下程序运行后的输出结果是 ______。
main()
{
int x=0210;
printf("%x\n",x);
}
A、88
B、86
C、77
D、21
(  C  )
7、以下程序运行后的输出结果是
#include<stdio.h>
struct st
{
int x, y;
} data[2] = {{1, 10},{2, 20}};
main ()
{
struct st *p = data;
printf ("%d,", p->y);
printf ("%d\n", (++p)->x);
}
A、10,1
B、20,1
C、10,2
D、20,2
(  B  )
8、某一维数组中依次存放了数据元素12,23,30,38,41,52,54,76,85,在用折半(二分)查找方法(向上取整)查找元素54时,所经历"比较"运算的数据元素依次为________。
A、41, 52, 54
B、41, 76, 54
C、41, 76, 52, 54
D、41, 30, 76, 54
(  A  )
9、有以下程序
#include <stdio.h>
main( )
{
int x = 0x13;
printf("int:%d\n", x+1);
}
程序运行后的输出结果是________。
A、INT:20
B、INT:13
C、INT:12
D、INT:14
(  B  )
10、有如下程序段int *p,a=6,b=2; p=&a; a=*p+b; 执行该程序段后,a的值为______。
A、6
B、8
C、7
D、编译出错
(  D  )
11、设char s[10]= 〞abcde〞,t[ ]= 〞12345〞; 则s和t在内存中分配的字节数分别是________。
A、6和5
B、6和6
C、10和5
D、10和6
(  D  )
12、c语言程序的三种基本结构是________。
A、循环结构转移结构顺序结构
B、递归结构循环结构转移结构
C、嵌套结构递归结构顺序结构
D、顺序结构选择结构循环结构
(  A  )
13、下列对字符串的定义中,错误的是________。
A、char str[7] = "FORTRAN";
B、char str[] = "FORTRAN";
C、char *str = "FORTRAN";
D、char str[] = {'F','O','R','T','R','A','N',0};
(  C  )
14、以下程序的输出结果是 _______ 。
main( )
{
int i=0,s=0;
for (;;)
{
if (i==6) break;
i++;
s+=i;
}
printf("%d\n",s);
}
A、10
B、15
C、21
D、死循环
(  A  )
15、以下表达式中,其值不等于数值 3 的是________。
A、0+'3'
B、'D'-'A'
C、'3'-'0'
D、'd'-a'
(  C  )
16、以下叙述中正确的是________。
A、两个字符串可以用关系运算符进行大小比较
B、函数调用 strlen(s)会返回字符串 s 实际占用内存的大小(以字节为单位)
C、C 语言本身没有提供对字符串进行整体操作的运算符
D、当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和
(  B  )
17、以下不合法的用户自定义标识符是________。
A、max
B、3_min
C、a1
D、_110
(  D  )
18、指针x指向的整型变量值为25,则”printf(“%d\n”,++*x);”
的输出是____
A、23
B、24
C、25
D、26
(  A  )
19、在C语言中,下面那种数据类型不属于构造类型____
A、枚举类型
B、数组类型
C、结构体类型
D、共用体类型
(  A  )
20、在 C语言中,为了结束由 while 语句构成的循环,while 后一对圆括号中表达式的值应该为()。
A、0
B、1
C、TRUE
D、非 0

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

(   F  )
1、c语言规定,在一个源程序中,main函数的位置必须在最后。( ) 
(   T  )
2、putchar函数可以向终端输出一个字符或字符型变量值。 
(   F  )
3、假设x、y、z和k都是int型变量,那么执行表达式:x=(y=4,z=16,k=32)后,x的值为________。 
(   F  )
4、break语句只能用在循环语句中。 
(   T  )
5、文件指针用于指向文件,文件只有被打开后才有对应的文件指针。 
(   T  )
6、c 语言具有简洁明了的特点。 
(   T  )
7、一个 c 程序可以包含若干函数, 但必须有主函数。 
(   T  )
8、字符串必须以‘ 0’结束,但字符数组可以不包括‘ 0’。 
(   F  )
9、在标准c语言中,字符串是以‘ 0’结束的,故字符串的长度也包括‘ 0’。 
(   F  )
10、在标准c中,逻辑表达式中只允许出现逻辑型数据。 

三、填空题 (共5题,每题4分,共计20分)

1、c语言约定用____________作为字符串的结束标志。
2、在c语言中,对一维整型数组初始化时如果只给一部分元素赋初值,那么其他元素值均为________。
3、以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。如‘a’变成‘f’,‘w’变成‘b’。请在 内填入正确的内容。
#include <stdio.h>
void main()
{
char c;
c=getchar();
if(c>=’a’&&c<=’u’) ;
else if(c>=’v’&&c<=’z’) ;
putchar(c);
}
4、有如下函数头: int max(int i,int j),则此函数有______个参数。
5、C标准库函数中,字符串的处理函数包含在______头文件中,数学函数包含在math.h头文件中。

四、程序分析题 (共4题,每题5分,共计20分)

1、下列程序段的运行结果是_____。
main()
{
int m=1,t=1;
for(;;)
{
m=m*t;
t++;
if(t>4)break;
}
printf("%d\n",m);
}
2、下列程序段的运行结果是________。
char a='m' ,*p ;
p=&a;
printf("%c",*p);
3、以下程序的运行结果是________。
main()
{
int a[3][3]= {1,3,5,7,9,11,13,15,17 }, sum;
sum=func(a);
printf("nsum=%dn",sum);
}
func(int a[][3])
{
int i,j,sum=0;
for (i=0;i<3;i++) for (j=0;j<3;j++)
{
a[i][j]=i+j;
if(i==j) sum=sum+a[i][j];
}
return (sum);
}
4、写出下列程序的运行结果。
#include "stdio.h"
main()
{
int a[]={1,2,3,-4,5};
int m,n,*p;
p=&a[0];
m=*(p+1);
n=*(p+4);
printf("%d %d %d ",*p,m,n);
}

五、编程题 (共3题,每题0分,共计50分)

1、编写程序:判断输入字符的字母的个数,以*结束输出。
2、编写程序:计算1到100之间的奇数之和及偶数之和
3、已知学生的记录由学号和学习成绩构成N名学生的数据已存入a结构体数组中。试编写函数fun函数的功能是找出成绩最低的学生记录通过形参返回主函数规定只有一个最低分在主函数中调用fun,使用结构体实现