西华师范大学历年计算机C语言复习题

本试卷为西华师范大学历年计算机C语言复习题,题目包括:单项选择题,填空题,编程题。

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

计算机C语言复习题

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

(  A  )
1、设x=011050,则x=x801252的值是________。
A、0000001000101000
B、11111101000l1001
C、0000001011100010
D、1100000000101000
(  D  )
2、若已定义:int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素的引用不正确的是________。
A、a[p-a]
B、*(&a[i])
C、p[i]
D、*(*(a十i))
(  A  )
3、从循环体内某一层跳出,继续执行循环外的语句是:________。
A、break语句
B、return语句
C、continue语句
D、空语句。
(  A  )
4、在c语言中,存储一个字符型、整型、单精度实型变量所需的空间是________。型、单精度实型变量所需的空间是________。
A、1、2、4
B、1、1、4
C、1、2、8
D、2、2、8
(  B  )
5、struct ex
{
int x ;
float y;
char z ;
}
example;
则下面的叙述中不正确的是________。
A、struct结构体类型的关键字
B、example是结构体类型名
C、x,y,z都是结构体成员名
D、struct ex是结构体类型
(  B  )
6、c语言对嵌套if语句的规定是:else总是与( ) 。
A、其之前最近的if配对
B、其之前最近的且尚未配对的if配对
C、缩进位置相同的if配对
D、第一个if配对
(  D  )
7、下面程序的输出是______。
main ()
{
struct cmplx
{
int x ;
int y ;
}
cnum[2]={1 , 3 , 2 , 7};
printf ( "%d\n" , cnum[0].y/cnum[0].x*cnum[1].x );
}
A、0
B、1
C、3
D、6
(  B  )
8、下面程序是计算 n 个数的平均值 , 请填空 . _________
#include<stdio.h>
void main( )
{
int i,n;
float x,avg=0.0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%f",&x);
avg=avg+______;
}
avg=________;
printf("avg=%f\n",avg);
}
A、i avg/i
B、x avg/n
C、x avg/x
D、i avg/n
(  D  )
9、判断字符型变量ch是否为大写英文字母,应使用表达式
A、ch>='A'&ch<='Z'
B、ch<='A'|| ch>='Z'
C、'A'<=ch<='Z'
D、ch>='A'&&ch<='Z'
(  C  )
10、设有定义语句int a []= { 66,77,99 },则下列对此语句的叙述中错误的是________。
A、定义了一个名为a的一维数组
B、a数组有3个元素
C、a数组的元素的下标为1~3
D、数组中的每一个元素都是整型
(  D  )
11、包含哪种语句的函数不能声明为内联函数( )
A、变量定义
B、if……else
C、位操作
D、switch
(  A  )
12、执行下列程序段后输出的结果是________
{
int x,y,z=1;
for(x=1,y=-1;x<y;x++,y--) z++;
printf("%d\n",z);
}
A、1
B、2
C、5
D、6
(  D  )
13、若有说明语句 char a[ ]="it is mine";
char *p="it is mine";
则以下不正确的叙述是________。
A、a+1表示的是字符t的地址
B、p指向另外的字符串时,字符串的长度不受限制
C、p变量中存放的地址值可以改变
D、a中只能存放10个字符
(  C  )
14、请读程序片段(字符串内没有空格字符):printf("%d\n",strlen("ats\n012\1\\") );
上面程序片段的输出结果是______。
A、11
B、10
C、9
D、8
(  D  )
15、下列字符中,错误的转义字符是________。
A、'\'
B、'\n'
C、'\''
D、'\091'
(  B  )
16、算法具有五个特性,以下选项中不属于算法特性的是______。
A、有穷性
B、简洁性
C、可行性
D、确定性
(  B  )
17、若有定义语句:double x[5]= {1.0,2.0,3.0,4.0,5.0 }, *p=x;
则错误引用x数组元素的是______。
A、*p
B、x[5]
C、*(p+1)
D、*x
(  B  )
18、以下叙述中正确的是________。
A、循环发生嵌套时,最多只能两层
B、三种循环 for, while,do-while 可以互相嵌套
C、循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误
D、for 语句的圆括号中的表达式不能都省略掉
(  A  )
19、以下叙述中正确的是________。
A、使用 typedef 定义新类型名后,新类型名与原类型名实际上是等价的
B、结构体类型中的各个成分均不能是数组或指针
C、结构体类型的变量,不能在声明结构体类型组成时一起定义
D、元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义
(  A  )
20、若有 int a[10], *p=a;
,且 a 数组已赋值,则与 a[4]不等价的表达式为________。
A、p+4
B、*(p+4)
C、*(a+4)
D、p[4]

二、填空题 (共10题,每题2分,共计20分)

1、以下程序运行后的输出结果是 ________ 。
main()
{
int x=0210;
printf("%x\n",x);
}
2、以下程序运行后的输出结果是 ________
fun(int x)
{
if(x/2>0) fun(x/2);
printf("%d ",x);
}
main()
{
fun(6);
}
3、以下程序的输出结果是 ________ 。
main()
{
char s[]="abcdef";
s[3]=‘\0';
printf("%s\n",s);
}
4、有int x=3,y=-4,z=5;
则表达式(x&&y)==(x||z)的值为 ________。
5、若有语句double x=17; int y; ,当执行y=(int)(x/5)%2;之后y的值是 ________。
6、若有以下定义语句float x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};,则表达式"x[1][1]*x[2][2]"的值是【1】。
7、局部变量的作用域是从定义的位置起,到( )结束止。
8、下列程序段的运行结果是________。
main()
{
int n,s=0;
for(n=1; n<=5; n++)
{
if(n%2!=0) continue;
s=s+i;
}
printf("%d\n",n);
}
9、若有以下定义, int m=5,y=2;
则计算表达式y+=y-=m*=y 后y的值是【】。
10、编译预处理包括( )、文件包含、条件编译等。

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

1、统计结构体数组中性别(sex)为'M'的变量的个数。
要求:
①数组元素依次赋初值为:{1 , "Andy" , 'M' } 、 {2 , "Mike" , 'F' } 、 {3 , "Rose" , 'M'}。
②结构体定义如下:struct Student{int num;char name[30];char sex;};
2、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
3、编写程序,读一个在字母C和X之间的字符,打印出该字母在中间的相邻五个字母。如输入F,则输出DEFGH。
相关标签:
  • C语言
  • 西华师范大学
  • 复习题