内蒙古民族大学计算机C语言期末

本试卷为内蒙古民族大学计算机C语言期末,题目包括:单项选择题,判断题,编程题。

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

计算机C语言期末

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

(  A  )
1、下列叙述中错误的是________。
A、在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B、在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C、在C语言中,外部变量的隐含类型是自动存储类别
D、在C语言中,函数形参的存储类型是自动(auto)类型的变量
(  D  )
2、c语言对嵌套的if语句的规定是:else总是与 配对。
A、与之前最近的if
B、第一个if
C、缩进位置相同的if
D、与之前最近的且尚未配对的if
(  B  )
3、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。 while((ch=getchar())!='e') printf("*");
A、5
B、4
C、6
D、1
(  A  )
4、若有定义语句: int a[4][10],*p,*q[4]; 且0<=i<4,则错误的赋值是________。
A、p=a
B、q[i]=a[i]
C、p=a[i]
D、p=&a[2][1]
(  A  )
5、有以下程序
#include <stdio.h>
void f(int *p,int *q);
main()
{
int m=1,n=2,*r=&m;
f(r, &n);
printf("%d,%d",m,n);
}
void f(int *p,int *q)
{
p=p+1;
*q=*q+1;
}
程序运行后的输出结果是________。
A、1,3
B、2,3
C、1,4
D、1,2
(  A  )
6、以下哪个不是c语言中的有效标识符
A、34a
B、-AB
C、A-B
D、A25
(  B  )
7、若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10 },*ia=a; 则不能正确表示a数组元素的表达式是 ______。
A、*ia
B、a[10]
C、*a
D、a[ia-a]
(  D  )
8、以下正确的说法是______。
A、实参和与其对应的形参各占用独立的存储单元
B、实参和与其对应的形参共用一个存储单元
C、只有当实参和与其对应的形参同名时才共用存储单元
D、型参是虚拟的,函数在没有被调用时,不占用存储单元
(  B  )
9、下列for循环的次数为________。
for( int i=0,x=0;!x&&i<=5;i++)
A、5
B、6
C、1
D、无限
(  B  )
10、设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是________。
A、k=* p1+ * p2
B、p2=k;
C、p1=p2;
D、k=* p1 * (* p2);
(  D  )
11、下列不是循环语句的是________。
A、while语句
B、do…while语句
C、for语句
D、if…else语句
(  D  )
12、若有下面的说明和定义,则sizeof(struct aa)的值是________。
struct aa {
int rl;
double r2;
float r3;
union uu {
char u1[5];
long u2[2];
} ua;
} mya;
A、30
B、29
C、24
D、22
(  C  )
13、设x=061,y=016,则z=x|y的值是________。
A、00001111
B、11111111
C、00111111
D、11000000
(  B  )
14、有以下程序
main()
{
int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;
for(i=0;i<3;i++)
for(k=i+1;k<4;k++)
if(a[i][i]<a[k][k])
{
t=a[i][i];
a[i][i]=a[k][k];
a[k][k]=t;
}
for(i=0;i<4;i++)
printf("%d,",a[0][i]);
}
程序运行后的输出结果是________。
A、6,2,1,1,
B、6,4,3,2,
C、1,1,2,6,
D、2,3,4,6,
(  D  )
15、下列选项中不是字符常量的是________。
A、'\V'
B、'\x2a'
C、'a'
D、"\0"
(  D  )
16、有以下程序
main()
{
unsigned chara,b,c;
a=0x3;
b=a|0x8;
c=b<<1;
printf("%d%d\n",b,c);
}
程序运行后的输出结果是______。
A、-11 12
B、-6 -13
C、12 24
D、11 22
(  A  )
17、设int x; 则以下语句中错误的输入是________。
A、scanf (″%d″,x);
B、scanf (″%d″,&x);
C、scanf (″%o″,&x);
D、scanf (″%x″,&x);
(  B  )
18、一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是______。
A、有零个或多个输入
B、有零个或多个输出
C、有穷性
D、可行性
(  C  )
19、下列关于指针变量的描述,不正确的是________。
A、在没有对指针变量赋值时,指针变量的值是不确定的
B、同类指针类型可以进行相减操作
C、在使用没有赋值的指针变量时,不会出现任何问题
D、可以通过指针变量来取得它指向的变量值
(  D  )
20、以下对结构体变量stu1中成员age的非法引用是________。
struct student
{
char name[10];
int age ;
}
stu1 ,*p;
p=&stu1;
A、stu1.age
B、p->age
C、(*p).age
D、student.age

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

(   T  )
1、比较两个字符串是否相等不能通过条件运算符"=="。 
(   F  )
2、while语句的一般形式如下,其中的循环体语句只能是一条语句。 
(   F  )
3、文件包含命令中,只能包含扩展名为.h的文件。 
(   F  )
4、当一个c语言程序由多个文件模块组成时,整个程序可以包含多个main()函数。 
(   F  )
5、若变量定义为int fahr;,则表达式5 * (fahr - 32) / 9和表达式5 / 9 * (fahr - 32)是等价的。 
(   F  )
6、c语言中函数返回值的类型是由形参的数据类型决定的。 
(   F  )
7、"++"运算符的优先级比" +"运算符的优先低 
(   F  )
8、当函数的实参与形参同名时,它们将共占内存单元。 ( ) 
(   T  )
9、数组 int a55; 共定义了 25 个数组元素。( ) 
(   T  )
10、在c语言中,当一个逻辑表达式的值为"假"时,该表达式的值一定是 0 ( ) 

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

1、编写程序:输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
2、输入5位同学的一组信息,包括学号、姓名、数学成绩、计算机成绩,求得每位同学的平均分和总分,然后按照总分从高到低排序。
3、编写程序,读一个在字母C和X之间的字符,打印出该字母在中间的相邻五个字母。如输入F,则输出DEFGH。