湖北文理学院往年计算机C语言期末复习题

本试卷为湖北文理学院往年计算机C语言期末复习题,题目包括:单项选择题,填空题,编程题。

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

计算机C语言期末复习题

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

(  A  )
1、c语言中,合法的字符型常数是________。
A、‘A’
B、“A”
C、65
D、A
(  C  )
2、以下程序的输出结果是________。
#include <stdio.h>
main( )
{
int count,i=0;
for(count=1; count<=4; count++)
{
i+=2;
printf("%d",i);
}
}
A、20
B、246
C、2468
D、2222
(  B  )
3、下列定义数组的语句中,正确的是________。
A、int N=10;
B、#define N 10
int x[N]; int x[N];
C、int x[0..10];
D、int x[];
(  B  )
4、有以下程序
#include <stdio.h>
struct ord
{
int x ,y;
}
dt[2]= {1,2,3,4 };
main()
{
struct ord *p=dt;
printf("%d,",++p->x);
printf("%d\n",++p->y);
}
程序的运行结果是________。
A、1,2
B、2,3
C、3,4
D、4,1
(  A  )
5、如果int a=3,b=4; 则条件表达式"a<b? a:b"的值是___。
A、3
B、4
C、0
D、1
(  C  )
6、下面各语句行中,能正确进行字符串赋值操作的语句是______。
A、char ST[5]={"ABCDE"} ;
B、char S[5]={'A' , 'B' , 'C' , 'D' , 'E'} ;
C、char *S ; S="ABCDE" ;
D、char *S ; scanf ( "%S" , S );
(  B  )
7、设有如下定义:
struct sk
{
int a ;
float b ;
}
data , *p ;
若有 p=&data ;
, 则对 data 中的 a 域的正确引用是______。
A、( *p ) .data.a
B、( *p ) .a
C、p->data.a
D、p.data.a
(  D  )
8、下面程序段的运行结果是 _____________.
for(i=1;i<=5;)
printf("%d",i);
i++;
A、12345
B、1234
C、15
D、无限循环
(  D  )
9、设有以下定义: int a[3][3]= { 1,2,3,4,5,6,7,8,9 }; int(*ptr)[3]=a; 则下列能正确表示数组元素a[1][2]的表达式是______。
A、*((*ptr+1)[2])
B、a[2][3]
C、(*ptr+1)+2
D、*(*(a+1)+2)
(  C  )
10、以下程序的输出结果是________。
#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(1%d %d , *p, *q);
}
A、23
B、34
C、35
D、45
(  A  )
11、以下选项中可作为c语言合法常量的是________。
A、-80
B、-080
C、-8e1.0
D、-80.0e
(  B  )
12、在下列的标识符中,错误的是________。
A、$_123
B、1xyz
C、$1_abc
D、abc_$123
(  C  )
13、有以下程序
main() {
int i;
for(i=0;i<3;i++)
switch(i) {
case 0: prinft("%d",i);
case 2: prinft("%d",i);
default:prinft("%d",i);
}
}
程序运行后的输出结果是________。
A、022111
B、021021
C、000122
D、012
(  A  )
14、有以下程序
#include<string.h>
main()
{
char p[]={'a','b','c'},q[10]={'a','b','c'};
printf("%d%d\n",strlen(p),strlen(q));
}
以下叙述中正确的是________。
A、在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B、由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3
C、由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3
D、由于p和q数组中都没有字符串结束符,故长度都不能确定
(  B  )
15、以下if语句书写正确的是________。
A、if(x=0;)
printf("%f",x);
elseprintf("%f",-x);
B、if(x>0)
x=x+1;printf("%f",x);
else printf("%f",-x);
C、if(x>0);
x=x+1;printf("%f",x);
else printf("%f",-x);
D、if(x>0)
x=x+1;printf("%f",x)
else printf("%f",-x);
(  A  )
16、有以下程序
#include <stdio.h>
main()
{
int a=2,b=3,c=4;
a*=16 +(b++) - (++c);
printf("%d \n",a );
}
程序运行后的输出结果是________。
A、28
B、30
C、15
D、14
(  D  )
17、以下程序的输出结果是______。
struct har
{
int x,y;
struct har *p;
}
h[2];
main()
{
h[0].x=1;
h[0].y=2;
h[1].x=3;
h[1].y=4;
h[0].p=&h[1];
h[1].p=h;
printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);
}
A、12
B、23
C、14
D、32
(  C  )
18、若有定义: char str1[10] = "aaaaaaa";
char str2[10] = "bbbbb";
将字符串str2连接到str1,则下列描述中正确的是________。
A、strcat(str1,str2)可以将字符串str2连接到str1中
B、strncat(str1,str2,strlen(str2))可以将字符串str2连接到str1中
C、strncat(str1,str2,2)可以将字符串str2的前两个字符连接到str1中
D、strncat(str1,str2,4)可以将字符串str2的前四个字符连接到str1中
(  A  )
19、以下选项中不合法的标识是________。
A、&a
B、FOR
C、print
D、_00
(  D  )
20、下列叙述中正确的是________。
A、C语言编译时不检查语法
B、C语言的子程序有过程和函数两种
C、C语言的函数可以嵌套定义
D、C语言所有函数都是外部函数

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

1、在c语言中,正确的标识符是由 ________ 组成的,且由 ________ 开头的。
2、下面程序的输出结果是________。
int x=-32769;
printf("%d",x);
3、有定义char str[]={‘d’,’o’,’g’,’\0’};
若执行puts(str);
则输出结果为________。
4、仅由顺序、选择(分支)和重复(循环)结构构成的程序是________程序。
5、执行以下程序的输出结果是________ 。
#include <stdion.h>
main()
{
int i, n[4]={1};
for(i=1;i<=3;i++)
{
n[i]=n[i-1]*2+1;
printf("%d", n[i]);
}
}
6、字符读写函数____________是用于从磁盘文件中读出一个字符。
7、表达式10/3*9%10/2的值是________。
8、双精度型数据有效位为______位
9、下面程序的运行结果是________。
#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);
}
10、在c 语言中,一个函数一般由两个部分组成,它们是【1】和【2】。

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

1、编写程序:输出fibonacci序列的前10个数,前两项键盘输入
2、题⽬描述
输⼊⼀组学⽣的成绩,按照成绩降序输出成绩表。如有相同成绩,较⼩的学号排位靠前
输⼊
输⼊格式为每⾏两个数值,学号N为10位数字,成绩S取值为整数(0≤S≤100)读取输⼊直到输⼊结束(数据总量不超过50⾏,且不会出现重复的学号)
输出
输出格式为每⾏两个数值,学号N之后有⼀个空格,成绩值的输出宽度占3个位置
样例输⼊
20####0405 78
20####0426 80
20####0402 61
20####0377 95
20####0427 80
样例输出
20####0377 95
20####0426 80
20####0427 80
20####0405 78
20####0402 61
3、输入一行字符,将所有的小写字母转换成大写字母,
相关标签:
  • C语言
  • 湖北文理学院
  • 期末复习题