重庆文理学院历年C语言期末
本试卷为重庆文理学院历年C语言期末,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言期末
一、单项选择题 (共20题,每题2分,共计40分)
(  B  ) 
1、有以下程序: void fun(int a,int b,int c)
{
a=456:b=567;
c=678;
}
main()
{
int x=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d\n",x,y,z);
}
输出的结果是________。
(  B  ) 
2、以下变量声明中正确的是________。
(  D  ) 
3、有以下程序
struct stu
{
int num;
float totalscore;
};
void f(struct stu p)
{
struct stu s[2]= {{20044,550}, {20045,537}};
p.num = s[1].num;
p.totalscore = s[1].totalscore;
}
main()
{
struct stu s[2]= {{20041,703} ,{20042,580}};
f(s[0]);
printf("%d %3.0f\n", s[0].num, s[0].totalscore);
}
程序运行后的输出结果是________。
(  C  ) 
4、设有以下说明语句 struct stu
{
int a ;
float b ;
}
stutype ;
则下面的叙述不正确的是______。
(  B  ) 
5、以下对枚举类型名的定义中正确的是______。
(  C  ) 
6、for(int x=0,y=0;!x&&y<=5;y++)语句执行循环的次数是________。
(  D  ) 
7、执行下面的语句后,表达式*(p[0]+1)+**(q+2)的值为______。 int a[]= { 5,4,3,2,1 },*p[]= { a+3,a+2,a+1,a },**q=p;
(  D  ) 
8、设a为int型变量,执行下列赋值语句后,a的取值分别为 ( ) a=125.534; a=20.0/3; a=20%3; a=(int)125%521%4; a=5<<2;
(  C  ) 
9、以下定义数组中错误的是________。
(  C  ) 
10、设有定义语句int a []= { 66,77,99 },则下列对此语句的叙述中错误的是________。
(  D  ) 
11、下列字符串中,不可以用作c标识符的是________。
(  D  ) 
12、有以下程序:
main() {
int y=1,x=2,z=3;
printf("%d,%d\n",(++x,y++),z+2);
}
执行后的输出结果是________。
(  D  ) 
13、有以下程序
#include<stdio.h>
main ()
{
int i, n;
for (i = 0; i < 8; i++)
{
n = rand () % 5;
switch (n)
{
case 1:
case 3:
printf ("%d\n", n);
break;
case 2:
case 4:
printf ("%d\n", n);
continue;
case 0:
exit (0);
}
printf ("%d\n", n);
}
}
以下关于程序执行情况的叙述,正确的是______。
(  C  ) 
14、下面程序段的执行结果是________。
#include<stdio.h>
main()
{
int a[5][5],i,j;
for(i=1;i<5;i++) for(j=1;j<5;j++) a[i][j]=(i<j)*(j/i);
for(i=1;i<5;i++) {
for(j=1;j<5;j++) printf("%2d",a[i][j]);
printf("\n");
}
}
(  D  ) 
15、下列关于表达式的描述中,错误的是________。
(  B  ) 
16、以下对局部变量描述错误的是________。
(  B  ) 
17、若想通过a&b来使a的二进制码中的首尾两位为原来的值,而其余为0,则b应为:(设变量a,b均占一个字节)
(  C  ) 
18、以下叙述中正确的是________。
(  A  ) 
19、已定义两个字符数组a,b,则以下正确的输入格式 是________。
(  C  ) 
20、下面正确的字符常量是________。
二、填空题 (共10题,每题2分,共计20分)
1、c语言中基本的数据类型有:整型、________、________ 。
2、以下程序的输出结果是 ________。
#include<stdio.h>
void swap(int *a,int *b)
{
int *t;
t=a;
a=b;
b=t;
}
main()
{
int i=3,j=5,*p=&i,*q=&j;
swap(p,q);
printf("%d %d\n",*p,*q);
}
3、字符串函数________用于从指定的磁盘文件中读出一个字符串。
4、静态存储的变量是在( )时分配存储单元并赋初值,在程序整个运行期间都不被释放。
5、下列程序段的运行结果是________。
int a[5]={1,2,3,4,5},*p;
p=a;
printf("%d", *(p=p+2) ) ;
6、语句只能用在循环中,该语句的作用是结束本层本次循环,继续一下次循环,前不跳出循环。
7、c语言中字符()以存在计算机中,整数以()储存在计算机中
8、下列给定程序中,函数ptoc()的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头两个元素进行排序,然后把第3个字符插入前两个字符中,插入后前3个字符依然有序;
再把第4个字符插入前三个字符中,待排序的字符串已 在主函数中赋予。 请添加合适的语句____________,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
#define M 80
void proc(char*arr)
{
int i,j,n;
char ch;
n=strlen(arr);
for(i=1;i<n;i++)
{
ch=arr[i];
j=i-1;
while(______________)
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=ch;
}
}
void main()
{
char a[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";
printf("The original string:%s\n",a);
proc(a);
printf("The string after sortin9: %s\n\n",a);
}
9、函数strlen("1234\0xy")的值为:______。
10、函数的形参在未被调用前不分配空间,函数形参的____要和实参相同。
三、编程题 (共3题,每题0分,共计40分)
1、编写程序:将字符数组a中下标值为奇数的元素从小到大排列,其它元素不变 例如:当a数组中的字符串为:"clanguage"时,程序的输出结果为:cgalgnaue()
2、编写一个函数统计并打印所输入的正文中的各个英文单词出现的次数并按次数的递减顺序输出,使用结构体实现。
3、判断101-200之间有多少个素数,并输出所有素数。
相关标签:
- C语言
 - 重庆文理学院
 - 期末