您好,欢迎来到独旅网。
搜索
您的当前位置:首页C语言期末试题2011年A

C语言期末试题2011年A

来源:独旅网


班号 姓名 C语言 考试题

分数 题号 一 二 三 四 五 六 七 八 九 十 总分 附加题 说明:考试成绩分为三部分:实验成绩占10分,卷面笔试成绩占45分,机考成绩占45分,满分为100分。本试卷为卷面笔试部分,卷面满分为45分。

一、填空题(6分,每题2分)

1.C语言中基本数据类型包括 。 2.已知能被4整除而不能被100整除的或者能被400整除的年份是闰年,则判断某一年year是否是闰年的表达式为:

。 3.设有下列登记表,采用最佳方式对它进行类型定义。

姓名 性别 出生年月 年 月 日 低收入 家庭收入状况 中等收入 家庭收入高收入 状况标记 姓名用name表示, 性别用sex表示, 出生年月用birthDay表示, 年用year表示,月用month表示,日用date表示,家庭收入状况用salary表示,低收入用low表示,中等收入用middle表示,高收入用high表示,家庭收入状况标记用mark表示。

二、判断下列问题描述正确与否,正确的打“√”,错误的打

第1页(共10页) 班级: 学号: 姓名: “×”。(3分 ,每题1分)

1.#define PI=3.14159;不是C语句。( ) 2.在C语言中,可以用typedef定义一种新的类型。( ) 3.共用体所占的内存空间大小取决于占空间最多的那个成员变量。

( )

三、选择题:(10分,每题1分)

1.以下不正确的C语言标识符是( )。

A. AB1 B. a2_b C. _ab3 D. 4ab 2.若有定义int (*p)[4],则标识符p是一个 。

A、指向整型变量的指针变量 B、指向函数的指针变量

C、指向有四个整型元素的一维数组的指针变量

D、指针数组名,有四个元素,每个元素均为一个指向整型变量的指针

3.若用数组名作为函数调用时实参,则实际上传递给形参的是( )。

A.数组首地址 B. 数组的第一个元素值

C.数组中全部元素的值 D. 数组元素的个数 4.C语言中规定函数的返回值的类型是由( )。 A. return语句中的表达式类型所决定

B. 在定义该函数时所指定的函数类型所决定 C. 调用该函数时系统临时决定

D. 调用该函数时的主调用函数类型所决定 5.以下错误的描述是( )。

A. 不同的函数中可以使用相同的变量名 B. 形式参数是局部变量

C. 一个函数内部定义的变量只能在本函数范围内有效 D. 在一个函数内部的复合语句中定义的变量可以在本函

2 班级: 学号: 姓名: 数范围内有效

6.为了判断两个字符串s1和s2是否相等,应当使用( )。A. if(s1 == s2) B. if(s1 = s2) C. if(strcpy(s1,s2)) D.if(strcmp(s1,s2)==0) 7.在while(x)语句中的x与下面条件表达式等价的是: 。 A. x!=0 B. x==1 C. x!=1 D. x==0 8.若有以下说明和语句:

struct stu {

int no;

char *name;

}student, *p=&student;

则以下引用方法不正确的是( )。 A. student.no B. (*p).no C. p->no D. student->no 9.以下对二维数组进行正确初始化的是( )。 A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[2][3]={{1,2},{},{4,5}}; C. int a[][3]={1,2,3,4,5,6}; D. int a[2][]={{1,2},{3,4}};

10.二维数组a有m行n列,则在a[i][j]之前的元素个数为( )。 A. j*n+i B. i*n+j C. i*n+j-1 D. i*n+j+1

四、写出下列程序的运行结果。(4分,每题1分)

1.#include

void fun(int x) {

x=20; }

main() {

3 班级: 学号: 姓名: int x = 10; fun(x);

printf(\"x = %d\\n\

}

运行结果是:

2.#include

注意行为规范,遵守考试纪律!

void fun(int b[4]) {

int j;

for(j=0; j<4; j++) b[j]=j; } main() {

int a[4] = {1,2,3,4}, k; fun(a);

for(k=0; k<4; k++)

printf(\"%d\\n\

}

运行结果是:

3.#include main()

{

int i = 10; switch(i) {

case 9: case 10: case 11: default : }

i+=10; i+=10; i+=10; break; i+=10;

4 班级: 学号: 姓名: printf(\"i = %d\\n\

}

运行结果是: 4. #include

void fun() {

static int a=5;

a++;

printf(\"a=%d\\n\ }

main() {

int m;

for(m=0; m<=1; m++)

fun();

}

运行结果是:

五、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(3分,每空1分)

从键盘输入10个整型数据,放入数组a 中,求其最大值及其所在元素的下标位置,并输出。 main() {

int a[10], n, pos, max; for (n=0; n<10; n++)

scanf(\"%d\max = ; pos = ; for (n=0; n<10; n++) {

if (a[n] > max)

{

max = a[n];

5 班级: 学号: 姓名: pos = ; }

}

printf(\"max=%d, pos=%d\\n\}

六、下面程序是有错误的程序,请找出其中的错误,并将正确的语句写在相应错误语句的右方空白处。(5分)

#include #include

int isprime(int m)

main() {

int n, flag;

printf(\"Input n:\"); scanf(\"%d\ flag = isprime(n); if(flag)

printf(Yes!\\n\") else

printf(\"No!\\n\"); }

/* 函数功能:判断m是否为素数 函数参数:整型变量m

返回值: 返回1时,表示m是素数;返回0时,表示m不是素数 */

int isprime(int *m) {

int i;

for (i=2; i<=sqrt(m); i++) {

if(m%i = 0) return 0; }

return 1;

6 班级: 学号: 姓名: }

注 意 行 为 规 范, 遵 守 考 试 纪 律 !

七、在下面任意选择2道题编程(14分,每题7分)

1.

从键盘任意输入某班30个学生的成绩,将成绩按照由高到低顺序打印。 2.

自己定义一个函数,以实现和函数strlen相同的功能,即任意输入一个字符串,调用该函数可以计算输入字符串的实际长度,然后打印

编程计算1! + 2! + 3! + 4! + …. + 10!的值

7 3.

班级: 学号: 姓名:

8

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dcrkj.com 版权所有 赣ICP备2024042791号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务