7-17-C语言上机考试试题12

2020-08-23 22:53

C 语言上机考试试题-12

一、选择题 ( 评分标准 20 分,每小题2分 )

1. 在定义一个结构体变量时系统分配给它的存储空间是________。 (A) 该结构体中的第一个成员所需存储空间 (B) 该结构体中的最后一个成员所需存储空间 (C) 该结构体中占用最大存储空间的成员所需存储空间 (D) 该结构体中所有成员所需存储空间的和

2. 执行语句for(s=0,k=1; s<20||k<10; k=k+2) s+=k; 后,s,k的值为________。 (A) 25,9 (B) 25,11 (C) 36,11 (D) 36,9

3. 若用fopen()函数打开一个已经存在的文本文件,保留该文件原有数据且可以读也可以写,则文件的打开模式________。

(A) \ (B) \ (C) \ (D) \4. 对于以下的变量定义,语句________在语法和语义上都是正确的。 struct node{ float x,y; char s[10]; }point={1,2, \

(A) *p=point; (B) p=&point; (C) point=p; (D) p->x=point.y 5. fseek函数可以实现的操作是________。

(A) 改变文件的位置指针的当前位置 (B) 文件的顺序读写 (C) 文件的随机读写 (D) 以上都不对

6. 在说明一个共用体变量时系统分配给它的存储空间是________。 (A) 该共用体中的第一个成员所需存储空间 (B) 该共用体中的最后一个成员所需存储空间 (C) 该共用体中占用最大存储空间的成员所需存储空间 (D) 该共用体中所有成员所需存储空间的和

7. 以下程序段输出字符串str,其中循环条件str[i]!='\\0' 还可以写成________。 char str[80];

for(i=0; str[i]!='\\0';i++) putchar(stri[i]);

(A) str[i] != NULL (B) i < 80 (C) !(str[i]='\\0') (D) i<=80 8. 设变量定义如下,则对其中的结构分量num正确的引用是________。

struct student { int num ; char name[20]; float score; } stud[10];

(A) stud[1].num=10; (B) student.stu(D) num=10; (C) struct stud.num=10; (D) struct student.num=10; 9. 函数f定义如下,执行语句m=f(5); 后,m的值应为________。 int f(int k) { if(k==0||k==1) return 1; else return f(k-1)+f(k-2); }

(A) 3 (B) 8 (C) 5 (D) 13

10. 以“只读”方式打开文本文件c:\\xy.txt,下列语句中哪一个是正确的________。 (A) fp=fopen(\ (B) fp=fopen(\

(C) fp=fopen(\ (D) fp=fopen(\

套数号 12 答案 1.D 2.B 3.C 4.B 5.A 6.C 7.B 8.A 9.B 10.B 二、判断题 ( 评分标准 20 分,每小题2分)

1. 若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的声明语句。 2. 在C 语言程序中,在main()函数中定义的变量称为全局变量 。 3. 执行循环语句for(i=1;i<10;i=i+2) s+=i; 后,i的当前值为11。 4. P为指向字符串\的指针变量,*P表示字符'h'。 5. 表达式(15|0)&2 的值是2。

6. 当函数参数表用int保留字表示时,则表示该参数表为空。 7. 链表是动态地进行存储分配的一种结构。 8. 链表的一个结点中只可以存储数据。 9. 全局变量就是在main函数中定义的变量。 10. 共用体变量所占内存长度等于最长的成员的长度。

套数号 13 答案 1.T 2. F 3. T 4. T 5. T 6. F 7. T 8. F 9. F 10. T 三、填空题 ( 评分标准 10 分,每小题2分)

1.下列程序段的输出结果是_____________(注意字符的大小写)。

main( )

{ char b[]=\b[5]=0;

printf(\}

2. 若有定义语句:char s[12],d[12]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。 while(s[i]){ d[j]= ______;j++;} d[j]=0;

3. 有如下函数调用语句

func(rec1,rec2+rec3,(rec4,rec5,rec6));

该函数调用语句中,含有的实参个数是 。

4 当调用函数时,实参是一个数组名,则向函数传送的是 的首地址。 5. 存储'A'要占用________个字节。 第4套

(1) Hello (2) s[i++] (3) 3 (4) 数组 (5) 1 四、程序改错题 ( 评分标准 20 分,每小题 5分 )

1. 以下程序用于统计字符串中各个元音字母(a,e,i,o,u)的个数,要求只统计小写字母,改正下面程序中的错误。 #include void main( ) { char s[100]; int i,j,num[5]; gets(s); for(j=0;j<5;j++)num[j]=0; for(j=0;s[j]!='\\0';j++) { i=-10; switch(s) /* $ */ { case 'a': {i=0;break;} case 'e': {i=1;break;} case 'i': {i=2;break;} case 'o': {i=3;break;} case 'u': {i=4;break;} } if(i>=0) num[i]++; } for(j=0;j<=4;j++)

printf(\ }

操作说明:

在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行中的语句switch(s)有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:此程序用于统计字符串中

各个元音字母(a,e,i,o,u)的个数,要求只统计小写字母。例如: 输入abcdef 输出11000 。 答案:s[j]

测试样例1:输入aabeediou 输出 22111

2. 以下程序要求实现:计算1+1/2+1/4+...+1/100的值。 #include void main() { int i;

float sum=1; for (i=2;i<100;)

{ sum+=1/(float)i;

i*=2; /* $ */ }

printf(\}

操作说明:

在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行中的语句i*=2; 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:计算1+1/2+1/4+...+1/100的值。

答案: i+=2;

测试样例1: 输出结果:3.23960

3. 以下程序把一个整数中每一位上为奇数的数字取出,并依次排列成一个新数,请改正程序中的错误。

#include void f( long s, long *p) {

int k=0; long d=1; *p=0; while(s>0) { k=s;

if(k%2==0){*p=k*d+*p; d*=10;} /* $ */

s/=10; } }

void main() {

long s,d=0;

scanf(\ f(s,&d);

printf(\ }

操作说明:

在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行中的语句

if(k%2==0){*p=k*d+*p;d*=10;} 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:把一个整数中每一位上为奇数的数字取出,并依次排列成一个新数。例如:输入:45678 输出:57 答案:k%2!=0

测试样例1:输入:45678 输出:57

4. 在主函数中用键盘输入两个数,将这两个数作为形参传递给fun函数,fun函数对传递过来的两个参数求和与差,并在主函数中输出这两个参数的和与差。 #include

void fun(int a,int b,int sum,int min) /* $ */ { *sum=a+b; *min=a-b; }

void main() {

int a,b,sum=0,min=0; scanf(\ fun(a,b,&sum,&min); printf(\}

在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行中的语句void fun(int a,int b,int sum,int min)有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:在主函数中用键盘输入两个数,将这两个数作为形参传递给fun函数,fun函数对传递过来的两个参数求和与差,并在主函数中输出这两个参数的和与差。例如:输入:4 5,输出结果:9 -1。 参考答案: void fun(int a,int b,int *sum,int *min) 测试样例1: 输入:4 5 输出结果:9 -1

五、程序填空( 评分标准 10 分,每小题5分)

1.下面程序可以求出矩阵a的主对角线上的元素之和,请进行程序填空 。 #include void main() { int a[3][3]={2,3,3,4,5,6,7,8,9,},sum=0,m,n; for(m=0;m<3;m++) for(n=0;n<3;n++) if(m==n) /* $ */ printf(\}

操作说明:

在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:求出矩阵a的主对角线上的元素之和。 答案: sum += a[m][n];


7-17-C语言上机考试试题12.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017中级经济师《经济基础》考试真题版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: