8-1-C语言上机考试试题17 联系客服

发布时间 : 星期一 文章8-1-C语言上机考试试题17更新完毕开始阅读c0bad534f111f18583d05a02

C 语言上机考试试题-17

1. 选择题 ( 评分标准 20 分,每小题2分 )

1.在定义了数组int a[5][6]; 后,第10个元素是 。 (A) a[2][5] (B) a[2][4] (C) a[1][3] (D) a[4][2] 2.下面哪个式子在a为奇数时结果为假 。

(A) a%2==1 (B) !(a%2==0) (C) !(a%2) (D) a%2

3.下面哪个程序段可以实现将变量u, s中的最大值赋给变量t的功能 。 (A) if(u>s) t=u; t=s;

(B) t=u; if(t>s) t=s; (D) t=s; if(u>t) t=u;

(C) if(u>s) t=s; else t=u; int x=3; do{

printf(“%d”,x--); }while(x!=0);

(A) 3 2 1

4.运行以下程序段后输出的结果是 。

(B) 3 (C) 无输出 (D) 陷入死循环

5.若要用fopen函数打开一个新的二进制文件,对该文件既能读又能写,则文件打开方式字符串应该是 。

(A) \ (B) \ (C) \ (D) \

6.若有下列定义:char c[3], *pc=c; ,则对c数组元素地址的正确引用是 。

(A) &c[3]

(B) pc+2

(C) c++

(D) &c

7.对于以下递归函数,调用f(4),其返回值为 。

int f(int n )

{ if(n) return f(n-1)+n; else return n ; }

(A) 10 (B) 4 (C) 0 (D) 以上均不是

8.已知:char str1[20]=\,str2[20]=\,则执行下面语句:

printf(\,输出结果是 。 (A) 9 (B) 3 (C) 5 (D) 8

9.下述语句中, 中的if语法是错误的。 (A) if(x>y); (B) if(x==y) x+y;

(C) if(x!=y) scanf(\(D) if(x

10.若有int (*p)[m]; 则p是 。 (A) m个元素的整型数组

(B) 指向m个元素的整型数组的指针 (C) m个整型指针的数组 (D) 指向m个整型指针数组的指针

套数号 17 答案 1.C 2.C 3.D 4.A 5.A 6.B 7.A 8.B 9.C 10.B

2. 判断题 ( 评分标准 20 分,每小题2分)

1. 在C语言中,所有的输入输出都由语句来完成。 2. 在C语言所有的运算符都是双目运算符。 3. stdin,stdout,stderr是C编译系统的文件指针。

4. 在ANSI C中,可用缓冲文件系统处理任何数据文件。 5. 结构体变量所占内存长度是各成员占的内存长度之和。 6. printf()函数总是从新行的起始位置开始打印。 7. 5Dmax是合法的用户标识符。

8. C程序总是从main( ) 函数的第一条语句开始执行的,而且main函数不能带有任何参数。9. 结构体作为构造类型要求其各个成员的类型必须是一样的。

10. 结构体变量成员名可以与程序中的变量名相同,二者不代表同一对象。

套数号 17 答案 1. F 2. F 3. T 4. T 5. T 6. F 7. F 8. F 9.F 10. T

3. 填空题 ( 评分标准 10 分,每小题2分)

1.若二维数组a有m列,则数组元素a[i][j]前的数组元素个数为 。 2.判断字符串a和b是否相等,应当使用if (______(a,b))(用字符表示)。 3.若有定义int k= 7,x =12; 则表达式:((x%=k)-(k%=5)) 的值是 。 4.已知int i=1; 执行语句while (i++<=4) ;后,变量i的值为 。 5.若有如下语句 int x=3;

do { printf(\

则上面程序段输出的是 、 。

第17套 (1)

i*m+j (2) strcmp (3) 3 (4) 6 (5) 1 -2 4. 程序改错题 ( 评分标准 20 分,每小题 5分 )

1. 下列程序改正错误后,运行结果为输出:0 8。 #include main()

{ int i,a;int fun(int m); for(i=0;i<2;i++) { a=fun(4+i);

printf(\ }

}

int fun(int m) { static int n=0; m/=2;m=m*2; if(m) { n=n*m;

return ((m-2));} /* $ */ else return(n++); }

操作说明:

在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行中的语句 return ((m-2));有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:程序的运行结果为输出:0 8。

答案: return (fun(m-2)); 运行样例1行 运行结果:0 8

2. 请为函数fun()改错,该函数的功能是判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回:1,否则返回:0。 #include #include int *fun(int n) { } main() { }

操作说明:

在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行中的语句b= n/10;有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:请为函数fun()改错,该函数的功能是判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回:1,否则返回:0。 答案:b=n/100; 运行样例2行

运行样例1:输入:143

结果:1

3.下列给定程序中函数fun()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为4576235时,t中的数为4725。 #include

int num=0; scanf(\ printf(\ int g,s,b; g=n; s=n/10;

b= n/10; /* $ */ if((g+b)==s)

return 1; else

return 0;