厦门理工学院历年C语言程序设计期末
本试卷为厦门理工学院历年C语言程序设计期末,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言程序设计期末
一、单项选择题 (共20题,每题2分,共计40分)
( B )
1、若有定义语句:int x=10; ,则表达式x-=x+x的值为
( A )
2、要求通过while循环不断读人字符,当读入字母n时结束循环,若变量已正确定义,下列正确的程序段是________。
( B )
3、以下正确的描述是________.
( C )
4、当从键盘上输入字符"12134211"下面程序的 输出结果是________。
main( )
{
char s;
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;k<=7;k++)
{
scanf("%c",&s);
switch(s)
{
default: v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++;
}
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}
( D )
5、以下程序的输出结果是:
main()
{
int a=12, b=12;
printf("%d,%d\n",--a,++b);
}
( D )
6、以下能正确定义字符串的语句是________。
( C )
7、若有以下定义和语句: int s[4][5],(*ps)[5]; ps=s; 则对s数组元素的正确引用形式是________。
( B )
8、有如下说明 int a[10]={ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 }, *p=a;则数值为 9 的表达式是______。
( C )
9、设x、y、t均为int型变量,则执行语句x=y=3; t=++x||++y; 后,y的值为______。
( D )
10、设有二维数组a(12,10),其每个元素占4个字节,数据按列优先顺序存储,第一个元素的存储地址为100。则元素a(5,5)的存储地址为________。
( C )
11、有以下程序段
typedef struct node
{
int data;
struct node * next;
}
* node;
node p;
以下叙述中正确的是________。
( A )
12、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)的c语言表达式是 ______ 。
( D )
13、c语言中函数返回值的类型决定于
( C )
14、若有下面的程序片段:
int[12]={0},*p[3],**pp,i;
for(i=0;i<3;i) p[i]=&a[i*4];
pp=p
则对数组元素的错误引用是________。
( D )
15、若有以下定义:int a[2][3]= { 2,4,6,8,10,12 } 则以下描述不正确的是 ______。
( A )
16、有以下程序
#include <stdlib.h>
main()
{
char *p,*q;
p=(char *)malloc(sizeof(char)*20);
q=p;
scanf("%s%s",p,q);
printf("%s%s\n",p,q);
}
若从键盘输入:abc def↙,则输出结果是______。
( B )
17、若有定义语句:double x[5]= {1.0,2.0,3.0,4.0,5.0 }, *p=x;
则错误引用x数组元素的是______。
( C )
18、下面哪个不是关键字?
( A )
19、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若要使p指向data中的a域,正确的赋值语句是________。
( A )
20、设有以下语句, 若 0
二、填空题 (共10题,每题2分,共计20分)
1、有以下程序
#include <stdio.h>
main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int b[3]={0},i;
for(i=0;i<3;i++) b[i]=a[i][2]+a[2][i];
for(i=0;i<3;i++) printf("%d",b[i]);
printf("\n");
}
程序运行后的结果是________。
2、在c语言中,关系运算符中的"小于等于"表示为_______。
3、a为整型,求(a=4*5,a*2),a+6;的最后结果
4、如果一个变量要在一个程序中的所有函数都能共享,则应该定义成为________。
5、main()
{
int a,b;
for (a=1,b=1;a<=100;a++)
{
if(b>=20) break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
}
程序的输出结果a的值为________。
6、设c 语言中,一个int 型数据在内存中占2 各字节,则int型数据的取值范围为________。
7、已定义一个含有30 个元素的数组s,函数fav1 的功能是按顺序分别赋给各元素从2 开始的偶数,函数fav2 则按顺序每5 个元素求一个平均值,并将该值存放在数组w 中。请填空。#define SIZE 30Fav1(float s[])
{
int k,i;
for(k=2,i=0;i<SIZE;i++)
{
【1】________;
K+=2;
}
}
Fav2(float s[],float w[])
{
float sum,k,i;
Sum=0.0;
for(k=0,i=0;i<SIZE;i++)
{
sum+=s[i];
if((i+1)%5==0)
{
w[k]=sum/5;
【2】________;
K++;
}
}
}
main()
{
float s[SIZE],w[SIZE/5],sum;
int i,k;
Fav1(s);
Fav2(s,w);
}
8、以下程序的输出结果是 ________ 。
#include <stdio.h>
main()
{
int k=1,s=0;
do
{
if((k%2)!=0) continue;
s+=k;
k++;
}
while(k>10);
printf("s=%d\n",s);
}
9、C语言中函数返回值的类型是由______决定的。
10、在scanf函数中,用符号______表示变量的地址。
三、编程题 (共3题,每题0分,共计40分)
1、编写程序:删除一个字符串中的指定字母,如:字符串 "aca",删除其中的 a 字母。
2、编写程序:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)。
3、编写程序:用结构体数组,学生信息由学号、姓名,成绩组成, 数据如下:201513135157 张三 90 1)使用结构体数组,将学生的数据按成绩从高到低排序显示到屏幕上 2)将学生中不及格学生的姓名显示出来 3)写一个函数,获取成绩低于平均分的学生记录并返回低于平均分的学生人数
相关标签:
- C语言
- 厦门理工学院
- 期末