当前位置:文档之家› 青海大学昆仑学院C语言期末考试试卷带答案

青海大学昆仑学院C语言期末考试试卷带答案

青 海 大 学 昆 仑 学 院 试 卷(A )班级: 学号: 姓名:考试课程: 程序设计语言(C ) 考试日期:2011X 年 7 月 日 注:所有答案均写在答题卡上,答在试卷上不得分,考试结束后试卷和答题卡一并交回一.填空题(每空1分,共15分)1.一个C 程序总是从 主函数(或main ) 开始执行的。

2.表达式2/3+7%4+3.5/7的值是 3.5 。

3.在函数内部定义只在本函数内有效的变量叫 内部变量(或局部变量) 。

4.C 语言中用 1(或非零) 表示逻辑值“真”,用 0 表示逻辑值“假”。

5. 将数学式2b a 改写成C 语言表达式为 sqrt(a+b*b) 。

6. 有程序段:int f=-1;printf(“%d,%u ”,f,f);则输出结果为 -1 、 65535 。

7. 数组在内存中占 连续 的存储区,用 数组名 代表其首地址。

8.有定义static int a[5]={2,4,6,8,10},*p ; p=&a[0];与p=&a[0]等价的语句是 p=a ,*(p+1)的值是 4 ,*(a+2)的值是 6 。

9.有结构体和共用体的变量定义如下:struct aa{int a ;char c ;float x ;}b1;union bb{int a ;char c ;float x ;}b2;则变量b1和b2占用的内存空间的字节数分别为 7 和 4 。

二.选择题(每小题2分,共计40分)1.下列变量名合法的是( B )。

A .B.C.TOMB ._testC .3a6bD .ab$2.C 语言中运算对象必须是整型的运算符是( B )。

A . /B .%C .!D .*3.以下程序的输出结果是( D )。

A .a=%2,b=%5B .a=2,b=5C .a=%%d ,b=%%dD .a=%d ,b=%dmain (){ int a=4,b=9; printf (“a=%%d ,b=%%d\n ”,a ,b );}4.下列程序的输出结果是( C )。

A .18B .9C .-18D .-9main () { int a=9;a+=a-=a+a ;printf (“%d\n ”,a ); }5.为表示关系a ≥b ≥c ,应使用的C 语言表达式是( A )。

A.(a>=b)&&(b>=c)B.(a>=b)AND(b>=c)C.(a>=b>=c) D .(a>=b)&(b>=c)6.字符型常量在内存中存放的是( B )。

A .BCD 代码B .ASCII 代码C .内部码D . 十进制码7.对下面程序段描述正确的是( D )。

A . while 循环执行了10次B . 循环是无限循环C . 循环体语句一次也不执行D . 循环体语句只执行一次{int x=10;do{ x=x-1;} while (x==0);}8. 下面选项中,与if(a)等价的是(D )。

A .if(a==0)B .if(a!=0)C .if(a=0)D . if(a==1)9.有程序段: int n=1;do{++n ;n=n*5;}while(n=10); ( B )A .执行一次B .执行2次C .不执行D .执行无限次10.若有声明语句:int b[2][4];则对a 数组元素的正确引用是( A )。

A.b[1][3] B. b[1][4] C. b[2][4] D.b[0][4]11.欲将字符串“kunlun college”赋给字符数组str,正确的语句是( D )。

A.str=“kunlun college”; B.str=“kunlun college\n”;C.strcpy(“kunlun college”,str); D.strcpy(str ,“kunlun college”);12.语句printf(“%d\n”,strlen(“xining”));的输出结果是(B)。

A.7 B.6 C.存在语法错误 D.不定值13.以下函数的类型是(C)。

A.与参数x的类型相同 B.void类型 C.int类型 D.无法确定ff(float x){ printf(“%d\n”,x*x);}14. 若用数组名作为函数调用的实参,传递给形参的是( A )A.数组的首地址 B.数组第一个元素的值C.数组中全部元素的值 D.数组元素的个数15.以下不正确的说法是( C )。

A.在C语言中允许函数递归调用B.函数值类型与返回值类型出现矛盾时,以函数值类型为准C.形参可以是常量、变量或表达式D.C语言规定,实参变量对形参变量的数据传递是“值传递”16.以下程序的输出结果是( D )。

A.15 B.100 C.10 D.150#define MAX(x,y)(x)>(y)?(x):(y)main(){ int i=10,j=15,k;k=10*MAX(i,j);printf(“%d\n”,k);}17.函数直接或间接地自己调用自己,被称为函数的(A)。

A.递归调用 B.主函数调用 C.自定义调用 D.嵌套调用18.下列说法中错误的是(D)。

A.枚举类型中的枚举元素是常量 B.一个整数不能直接赋给一个枚举变量C.枚举类型中枚举元素的值都是从0开始以1为步长递增D.typedef可以用来定义新的数据类型19.在C语言中,对文件的存取是以(A)为单位的。

A. 字节B.函数C. 记录D.模块20.当fclose函数正确执行后,函数的返回值是(A)。

A.0 B.-1 C.1 D.非零值三.阅读下列程序,按题意填空(每空2分,共计16分)1.有以下程序(求20以内的偶数和,包括20)。

请填空:#include <stdio.h>main(){ int n=0,sum=0;do{ n++;if(①n%2==0 ); sum+=n;} while(② n<=20 ); printf(“%d\n”,sum);}2.以下程序判断输入的一个整数m是否既能被4又能被6整除,若能整除,输出“YES”,若不能整除,输出“NO”。

请填空:#include <stdio.h>main(){ int m;printf(“Enter a int number:”); scanf(“%d”,③&m);if(④m%4==0 && m%6==0) printf(“YES\n”);else printf(“NO\n”);}3.以下程序的功能是输出杨辉三角形。

请填空:#include <stdio.h>main( ){ int a[10][10],int i,j; for(i=0;i<10;i++) a[i][0]=1;for( i=1(或i=0);i<10;i++) a[i][i]=1;for( i=2;i<10;i++)for(j=1;j<i;j++)a[i][j]= a[i-1][j-1]+a[i-1][j];for(i=0;i<10;i++){ for(j=0;j<=i;j++) printf(“%4d”,a[i][j]);printf(“\n”);} } 四.程序阅读题(每题3分,共计9分)1.#include <stdio.h> 输出结果:8。

main(){int k=5,m=1;switch(k){ case 1: m++;case 5: m*=4;case 9: m+=4; break;default: m+=3; }printf(“%d”,m) ;}2.#include <stdio.h> 输出结果:12。

main( ){int i,j,a[3][3]={{1,3,5},{2,4,6},{9,8,7}};int sum=0;for(i=0;i<=2;i++) sum+=a[i][i];printf(“%d\n”,sum); }3.int a=9,b=5;输出结果: 3 。

int min(int a, int b){ int c;c=a<b?a:b; return(c);}main( ) { int a=3; printf(“min=%d”,min(a,b));}五.编程题(共计20分)1.(8分)利用循环求12+22+32+42+52。

#include <stdio.h>main( ){int i,sum=0;for(i=1;i<=5;i++)sum+=i*i;printf(“%d\n”,sum);}2.(6分)从键盘输入8个任意整数,计算数组中所有的负数之和(用一维数组)。

#include <stdio.h>main( ){int i,j,a[8], sum=0;printf(“Please input 8 numbers:\n”);for(i=0;i<8;i++)scanf(“%d”,&a[i]);for(i=0;i<8;i++)if(a[i]<0) sum=sum+a[i];printf(“%d\n”,sum); }3.(6分)利用函数编写求两数相乘的函数xc( )。

#include <stdio.h>float xc(float x,float y){ return (x*y);}main( ){float a,b,c;scanf(“%f,%f”,&a,&b);c=xc(a,b);printf(“c=%f\n”,c); }。

相关主题