山东中医药大学C语言程序设计期末考题
本试卷为山东中医药大学C语言程序设计期末考题,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言程序设计期末考题
一、单项选择题 (共20题,每题2分,共计40分)
( D )
1、若变量已正确定义为int型,要给a、b、c输人数据,正确的输入语句是________。
( D )
2、fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下划线处应填写的是________。
#define N 5
void fun(int x[N])
{
int m;
for(m=N-t;m>=O;m-)scanf("%d",________);
}
( B )
3、设有定义:long x=-123456l; 则以下能够正确输出变量x值的语句是________。
( C )
4、下述对c语言字符数组的描述中错误的是________。
( C )
5、有如下函数定义;
void func(int a,int & b)
{
a++;
b++;
}
若执行代码段:int x=0,y=1;
func(x,y);
则变量x和y的值分别是________。
( C )
6、执行以下程序段后,w的值为________。 int w='a',x=14,y=15; w=((x||y)&&(w<'a'));
( C )
7、下列说法不正确的是________。
( B )
8、下列变量定义中,合法的是________。
( B )
9、int a[5],*p=a; 对a数组元素地址的正确引用是________。
( C )
10、下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是________。
#include<stdio.h>
main()
{
char sl[]="chinese",s2[]="japnese";
int i;
for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++) if(s1[i]=s2[i]&&i<7) ____________________;
}
( B )
11、设有以下说明语句:
struct stu
{
int a;
float b;
}
suttype;
则下面叙述不正确的是________。
( B )
12、请选出以下程序的输出结果______。
#include <stdio.h>
sub(int x,int y,int *z)
{
*z=y-x;
}
main()
{
int a,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c);
}
( B )
13、下关于运算符优先顺序的描述中正确的是________。
( B )
14、若想通过a&b来使a的二进制码中的首尾两位为原来的值,而其余为0,则b应为:(设变量a,b均占一个字节)
( B )
15、若有程序段:x=99; while(x-2) x--; 则循环结束时,x=________。
( A )
16、以下叙述中正确的是________。
( B )
17、在 C语言程序中()。
( C )
18、C语言执行程序的开始执行点是()。
( B )
19、以下程序的输出结果是()。
main()
{ char s[]="123",*p;
p=s;
printf("%c%c%c\n",*p++,*p++,*p++);
}
( A )
20、以下语句中,循环次数不为 10 次的语句是()。
二、判断题 (共10题,每题2分,共计20分)
( T )
1、在c语言中,字符数组可以存放字符串。( )
( F )
2、调用strcmp函数比较字符串大小时,通常较长的字符串会较大。
( T )
3、标准格式输入函数 scanf()可以从键盘上接收不同数据类型的数据项。
( F )
4、c语言中sizeof 是函数,而不是运算符。
( F )
5、数组的下标从1开始。
( F )
6、在switch语句中,多个case不可以共用一组执行语句。
( F )
7、for 语句只能用于循环次数已经确定的情况
( T )
8、文件是否打开是可以判断的。
( T )
9、寄存器类变量的作用域和寿命与自动类变量的相同。
( T )
10、double 型变量在内存中占的字节数比 int 型变量在内存中占的字节数多。
三、填空题 (共5题,每题4分,共计20分)
1、局部变量的作用域是从______的位置起,到函数结束止。
2、已知char str[]="man",则strlen(str)的值为_____。
3、下列程序段的运行结果是________。
main()
{
int m=1,t=1;
for( ; ; )
{
m=m+t ;
t++;
if(m>9) break ;
}
printf("%d\n",m);
}
4、构成数组的各个元素必须具有相同的______。
5、关系表达式x+y>5的相反表达式为______。
四、程序分析题 (共4题,每题5分,共计20分)
1、以下程序运行后的输出结果是 ________ 。
main()
{
int x=0210;
printf("%x\n",x);
}
2、mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。 int mystrlen(char *str)
{
int i;
for(i=0; ________!=‘\0';i++);
return( ________);
}
3、已知"float x=0.5;int y=13;",则算术表达式"x+y/5"的值是________。
4、请阅读下面的程序,当用户从键盘输入hello world时,分析程序是否能编绎通过并正确运行,如果不能,说明原因;
如果能,请写出运行结果。
void main()
{
char str[256];
scanf( );
printf( );
}
hello
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:从键盘上输入一个数字组成的字符串(字符串长度小于8),将该字符串转换成一个十进制数 例如:从键盘上输入2345,则程序运行的结果应当为:n=2345()
2、编写程序:打印出杨辉三角形(要求打印出10行)。 结构如下所示: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 ......
3、输入5位同学的一组信息,包括学号、姓名、数学成绩、计算机成绩,求得每位同学的平均分和总分,然后按照总分从高到低排序。
相关标签:
- C语言
- 山东中医药大学
- 期末考题