河北科技大学往年C语言期末题库
本试卷为河北科技大学往年C语言期末题库,题目包括:单项选择题,判断题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言期末题库
一、单项选择题 (共20题,每题2分,共计40分)
( C )
1、有以下程序:
main()
{
int x=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是________。
( C )
2、下面标识符中正确的是________。
( A )
3、下列字符串是标识符的是________。
( D )
4、若有如下定义语句: int a[10]= { 1,2,3,4,5,6,7,8,9,10 } ; 则对数组正确的引用是________。
( B )
5、将十进制数0.625转换成二进制数是________。
( B )
6、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。 while((ch=getchar())!='e') printf("*");
( C )
7、下列叙述中,正确的是________。
( B )
8、在一个应用程序中有如下定义:int a[]= {1,2,3,4,5,6,7,8,9,10 },为了打印输出数组a的最后一个元素,下面正确的代码是________。
( A )
9、设int a=4,b; 则执行b=a<<1; 语句后,b的结果是________。
( C )
10、在下列选项中,没有构成死循环的程序是________。
( B )
11、下列赋值语句错误的是________。
( A )
12、假设px和py分别表示x和y商品的价格,当边际替代率mrsxy>px/py,消费者为达到最大效用,他将会________。
( B )
13、有以下程序
#include<stdio.h>
int fun(int a,int b) {
if(b=0)return a;
else return(fun(--a,--b));
}
main() {
printf("%d\n",fun(4,2));
}
程序的运行结果是________。
( A )
14、有以下程序
struct s
{
int n;
int a[20];
};
void f(int *a,int n)
{
int i;
for(i=0;i<n-1;i++)a[i]+=i;
}
main()
{
int i;
struct s s={10,{ 2,3,1,6,8,7,5,4,10,9}};
f(s.a,s.n);
for(i=0; i<s.n; i++)printf("%d,",s.a[i]);
}
程序运行后的输出结果是________。
( A )
15、下列合法的字符型常量是________。
( D )
16、有如下定义: struct student
{
char name[10];
int age;
char gender;
}
std[3], *p=std;
则以下各输入语句中错误的是________。
( C )
17、设有数据定义语句"int a[200]; ",下列数组元素引用中下标不越界的是________。
( B )
18、运行下面程序时,若从键盘输入5后回车,则程序的输出结果是________。
( B )
19、能正确表示a≥10或a≤0的关系表达式是________。
( D )
20、设已定义整型变量k,则下面的程序输出为________。k=017 ; s=111; printf ( ''%d'', ++k); printf ( ''%x\n'' ,s++);
二、判断题 (共10题,每题2分,共计20分)
( F )
1、c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是地址传递。( )
( F )
2、当#include后面的文件名用双引号""括起,仅搜索当前目录。
( T )
3、一个函数中可以有多个return语句,当执行到某个return语句时,程序的控制流程返回到调用该函数的地方,并将return语句中表达式的值作为函数值带回。
( T )
4、在 c 程序中,9ab是非法的用户标识符。
( T )
5、while语句和do - while语句的一般形式分别如下,其主要区别是:while 语句先判断循环条件,只有条件满足才进入循环,如果一开始条件就不满足,则循环一次都不执行。而do - while语句先执行循环体,后判断循环条件,所以无论循环条件的值如何,至少会执行一次循环体。
( F )
6、字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的双引号("")引起来。()
( F )
7、switch语句的各个case和default的出现次序不影响执行结果
( T )
8、用指针变量可以指向一维数组,也可以指向多维数组。
( T )
9、用字符串常量给数组赋初值时,如果提供的字符个数小于数组的长度,则在最后一个字符后加'\0'作为字符串结束标志。
( T )
10、函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同时,则返回0。
三、编程题 (共3题,每题0分,共计40分)
1、编写一个函数,从传人的m个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。 试题程序:
char*proc(char(*a)[81],int num)
{
}
void main()
{
char ss[l0][81],*max;
int n,i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)
{
i++;
gets(ssei]);
puts(ss[i]);
}
n=i;
max=proe(ss,n);
printf("\nmax=%s\n",max);
}
2、编写input()和output()函数,输入输出5个学生记录,每个记录包括num、name、score[3],使用结构体实现。
3、从键盘输入一个十进制整型数据,计算并输出其各位上数字之和(忽略正负号)。例如,输入1234,输出10;输入-1234,输出10。
相关标签:
- C语言
- 河北科技大学
- 期末题库