湖南中医药大学往年C语言期末复习题
本试卷为湖南中医药大学往年C语言期末复习题,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言期末复习题
一、单项选择题 (共20题,每题2分,共计40分)
( D )
1、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是________。
( B )
2、若有以下数组说明,则i=10; a[a[i]]元素数值是________。 int a[12]= { 1,4,7,10,2,5,8,11,3,6,9,12 } ;
( D )
3、已知 short int 类型变量占用两个字节 , 若有定义 : short int x[10]={ 0,2,4 }; 则数组 x 在内存中所占字节数是 __________.
( B )
4、设有以下函数:
#include <stdio.h>
int f(int a)
{
int b=0,c;
c=3;
b++ ;
c++;
return (a+b+c);
}
如果在下面的程序中调用该函数,则输出结果是 ______.
void main()
{
int i;
for(i=0;i<3;i++)
printf("%d\n",f(i));
}
( B )
5、下面关于指针的说法中错误的是________。
( A )
6、设int a=4,b; 则执行b=a<<1; 语句后,b的结果是________。
( A )
7、下面关于数组的初始化正确的是________。
( A )
8、以下叙述中错误的是______。
( A )
9、设有以下语句
typedef struct s
{
int g;
char h;
}
t;
则下面叙述中正确的是________。
( D )
10、若有以下说明和语句:
struct st
{
int n;
char *ch;
}
;
struct st a[3]
{
5,"abc",7,"def",9,"ghk"
}
,*p=a 则值为6的表达式是______。
( D )
11、以下程序运行后的输出结果是
main( )
{
char s[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);
}
( C )
12、下列字符数组长度为5的是________。
( C )
13、已知字符'c' 的ascii码为99,语句printf ("%d,%c",'c','c'+1); 的输出为________。
( B )
14、下面四个选项中,均是合法的用户标识符的选项是________。
( A )
15、以下表达式中,其值不等于数值 3 的是________。
( B )
16、以下叙述中正确的是________。
( C )
17、经过以下语句定义后,表达式z+=x>y?++x:++y的值为________。 int x=1,y=2,z=3;
( D )
18、以下程序的运行结果是________。
main()
{
int i=1,sum=0;
while(i<10) sum=sum+1;
i++;
printf("i=%d,sum=%d",i,sum);
}
( D )
19、以下程序段中,变量 c 的二进制值是________ char a=2,b=4,c; c=a+b<<2;
( B )
20、C语言中 while 和 do—while 循环的主要区别是
二、判断题 (共10题,每题2分,共计20分)
( T )
1、c程序函数体是由左右花括号{}括起来的部分。
( F )
2、在c语言的嵌套循环结构中,任何一层循环中的brea语句都可以结束整个嵌套循环的执行。
( T )
3、在程序设计中,一组具有相同数据类型的变量集合称为数组。()
( F )
4、函数的实参和形参都可以是变量、常量和表达式。
( F )
5、c 语言标准输入操作中 ,gets() 函数一次只可读取一个字符。
( T )
6、标准c中并没有提供定义常量的方法。
( F )
7、在标准c中,变量定义一定要出现在函数开始部分
( F )
8、在标准c中,没有逻辑型数据,故不能使用逻辑表达式。
( T )
9、常量是在整个程序运行过程中不能改变的量
( F )
10、随机操作只适用于二进制文件。
三、填空题 (共5题,每题4分,共计20分)
1、数组 int a[3][3]; 共定义了 ________ 个数组元素。
2、全局变量又称外部变量,是在函数______定义的变量。
3、若int a=3,b=2,c=1,f;表达式f=a>b>c 的值是________。
4、结构化程序三种结构为________。
5、数学表达式x<y<z改写为c语言表达式是___________。注:表达式要在英文半角状态下按原表达式顺序书写,且表达式中不要留空格。
四、程序分析题 (共4题,每题5分,共计20分)
1、以下程序中给指针p分配三个double型动态内存单元,请填空。
#include <stdlib.h>
main ( )
{
double *p;
p=(double *) malloc( ________);
p[0]=1.5;
p[1]=2.5;
p[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}
2、以下程序的输出结果是________。#inlcude <stdio.h>
main()
{
int m=68;
putchar(m+30);
}
3、以下程序的运行结果是_____________。
main( )
{
int k, a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
for( k=0;k<4;k ++)printf("%d,",a[k][k]);
}
4、下列给定程序中,函数proc()的功能是计算正整数m 各位上数字的平方和。 例如,输入498,则输出应该是161。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h> long proc(10ng m)
{
long sum=1;
do
{
sum+=(m%10)*(m%10);
m/= 10;
}
while(m)
return(sum);
}
void main()
{
long n;
system("cls");
printf("please enter a number:");
scanf("%1d",&n);
printf("\n%ld\n",proc(n));
}
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:输入10个学生的成绩,统计高于平均分的人数
2、题⽬描述 有10个学⽣,每个学⽣的数据包括学号、姓名、3门课程的成绩。读⼊这10个学⽣的数据,要求输出3门课程的总平均成绩,以及个⼈平均分最⾼的学⽣的数据(包括学号、姓名、3门课程成绩、平均分数)。 输⼊ 共有10⾏,每⾏包含了⼀个学⽣的学号(整数)、名字(长度不超过19的⽆空格字符串)和3门课程的成绩(0⾄100之间的整数),⽤空格隔开。 输出 第⼀⾏包含了3个实数,分别表⽰3门课程的总平均成绩,保留2位⼩数,每个数之后输出⼀个空格。 第⼆⾏输出个⼈平均分最⾼的学⽣的数据,与输⼊数据格式相同。如果有多位个⼈平均分最⾼的学⽣,输出按照输⼊顺序第⼀个最⾼分的学⽣数据。 请注意⾏尾输出换⾏。 样例输⼊ 样例输出 85.60 87.90 90.40 105 EEE 92 93 94
3、整数转字符串。输入一个整数1234,得到字符串: “1234”
相关标签:
- C语言
- 湖南中医药大学
- 期末复习题