西华大学往年C语言期末精选样卷
本试卷为西华大学往年C语言期末精选样卷,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言期末精选样卷
一、单项选择题 (共20题,每题2分,共计40分)
( C )
1、有一函数, ,以下程序段中不能根据x值正确计算出y值的是________。
( A )
2、有以下程序
main()
{
int a,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
输出结果是________。
( B )
3、有以下程序:
#define S(x) (x)*x*2
int main()
{
int k=5, j=2;
printf("%d",S(k+j));
printf("%d\n",S(k-j));
}
程序运行后的输出结果是________。
( A )
4、下列字符串是标识符的是________。
( C )
5、下面程序的输出是________。("□"表示一个空格) int a=3366; printf("|%-08d|",a);
( A )
6、若有说明语句:char c='\101'; 则变量c:
( D )
7、下面程序输出的结果是 __________.
#include <stdio.h>
void main( )
{
int i,j,x=0;
static int a[6]={1,2,3,4,5,6};
for(i=0,j=1;i<5;++i,j++) x+=a[i]*a[j];
printf("%d\n",x);
}
( C )
8、若有以下说明 : char s1[ ]={"tree"
} ,s2[]={"flower"};, 则以下对数组元素或数组的输出语句中 , 正确的是 _______ .
( A )
9、c 语言规定,除主函数外,程序中各函数之间 ______.
( B )
10、若数组a定义为int[][]a=new int[3][4],则a是________。
( A )
11、下列各循环语句中,不是死循环的是________。
( C )
12、以下字符常量中不合法的是________。
( D )
13、程序设计语言中________。
( D )
14、在c语言程序中,注释部分从哪开始,到哪结束?()
( D )
15、下列选项不属于函数的组成部分是?
( B )
16、以下选项中合法的用户标识符是______。
( A )
17、以下叙述中正确的是________。
( B )
18、若有int a[][2]= {{1,2},{2,3}}; 则*(a+1),*(*a+1)的含义分别为________。
( A )
19、定义共用体的关键字是________。
( B )
20、将三个数排序需要比较________次。
二、判断题 (共10题,每题2分,共计20分)
( F )
1、在while循环中允许使用嵌套循环,但只能是嵌套while循环。( )
( T )
2、在 c 程序中,9ab是非法的用户标识符。
( F )
3、当一个c语言程序由多个文件模块组成时,整个程序可以包含多个main()函数。
( F )
4、对字符数组元素进行引用时,可以一次引用整个数组。
( T )
5、字符串在内存中的起始地址称为字符串的指针,可以定义一个字符指针变量指向一个字符串
( F )
6、c语言中sizeof 是函数,而不是运算符。
( F )
7、在标准c中," ="是判断两个数是否相等。()
( F )
8、if 语句后面的表达式只能是关系表达式
( F )
9、定义在main 函数后的任何函数都需在main 中进行函数声明
( F )
10、fseek函数一般用于文本文件。
三、填空题 (共5题,每题4分,共计20分)
1、语句主要是实现次数循环结构,while语句主要是实现当型循环结构。
2、在c语言中,实参和形参之间的数据传递是【1】向的值传递。
3、设int a=5,b=6; 则表达式(++a==b--)?++a:--b的值是________。
4、int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b的值为______。
5、在scanf函数中,用符号______表示变量的地址。
四、程序分析题 (共4题,每题5分,共计20分)
1、下列程序段的运行结果是________。
main( )
{
int a=5,b=6,c;
int max(int,int);
c=max(a,b);
printf("%d\n",c);
}
int max( int x , int y )
{
int z;
if(x>y) z=x;
else z=y;
return z ;
}
2、下列程序段的运行结果是________。
int a[5]={10,20,30,40,50}
,*p;
p=a;
printf("%d", *(p=p+3) ) ;
3、下面程序的运行结果是________。
#include <stdio.h>
main()
{
int a, b, i;
a = 1;
b = 3;
i = 1;
do
{
printf("%d,%d,", a, b);
a = (b - a) * 2 + b;
b = (a - b) * 2 + a;
if (i++ % 2 == 0) printf("\n");
}
while (b < 100);
}
4、请阅读下面的程序,当用户从键盘输入hello world时,分析程序是否能编绎通过并正确运行,如果不能,说明原因;
如果能,请写出运行结果。
void main()
{
char str[256];
scanf( );
printf( );
}
hello
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:若有数组:int a[2][3] ={{1,2,3},{4,5,6}};
现要将a的行和列的元素互换后存到另一个二维数组b中,并以矩阵形式输出数组b。试编程。
2、编写程序:使用结构体,创建一个长度为n的链表。
3、编写程序,将用户输入的字符串中删除所有的数字,然后输出剩余的字符。
相关标签:
- C语言
- 西华大学
- 期末精选样卷