1、青海大学试卷(A卷)系别: 班级: 学号: 姓名: 考试课程: 程序设计基础(C) 考试日期:2009 年 12月17日注:所有答案均写在答题卡上,答在试卷上不得分,考试结束后试卷和答题卡一并交回一填空题(每空1分,共16分)1整型静态数组没有初始化,也没有赋值,此时数组元素的值均为 。2数组在内存中占 的存储区,用 代表其首地址。3. 在函数内部定义的只在本函数内有效的变量叫 ,在函数以外定义的变量叫 。4调用一个函数时,实参变量和形参变量之间的数据传递是 ;若用数组名作为实参,则实际上传递给形参的是 。5. 有这样的定义:static int a5=2,4,6,8,10;int *p; p
2、=&a0;则与p=&a0等价的语句 ,*(p+1)的值是 ,*(a+3)的值是 。6有说明char s140,s220= you are a teacher.;如果想从键盘上把字符串I am a student.输入到数组s1中,函数调用的语句是 。 能把s2中的字符串接到s1中的字符串后面的函数调用的语句是 。7C语言中逻辑运算符 的优先级高于算术运算符。8在C语言中,声明枚举类型用关键字 开头。9在C语言中,文件的存取是以 为单位的,这种文件被称作 文件。二选择题(每小题2分,共40分)1可以在C语言中用做用户标识符的是( )。 Aelse Ba_b1 Cfor D2cd2若已定义x和y为
3、double类型,则表达式:x=1,y=x+3/2的值是( )。 A1 B2 C2.0 D2.53以下程序的输出结果是( )。main( ) int m=10; printf(%d,%d,%d,-m,+m,+m); A9,10,11 B10,10,11 C9,12,11 D11,12,114C语言中,逻辑真等价于( )。A大于零的数 B非零的数 C小于零的数 D非零的整数5C语言程序的执行总是从( )开始。A编译预处理命令 Bmain函数的入口C源程序的第一个函数 D源程序的第一行语句6在C语言中,字符型数据在内存中以( )形式存放。AASCII码 B补码 C反码 D原码7a为5,执行下列语句
4、后,b不为2的是( )。 Ab=a/2 Bb=6-(-a) C b=a%2 D b=a3?2:18若有float x;则sizeof(x)和sizeof(float)两种描述( )。A都正确 B都不正确 C前者正确 D后者正确9若有定义char s=092;则该语句( )。A使s的值包含1个字符 B定义不合法,s的值不确定C使s的值包含4个字符 D使s的值包含3个字符10以下概念正确的是( )。A形参是虚设的,所以它始终不占用存储单位B实参与它所对应的形参同名时可占用一个存储单元C实参与它所对应的形参占用一个存储单元D实参与它所对应的形参占用不同的存储单元11以下程序的输出结果是( )。voi
5、d increment(void) static int x=0; x+;printf(%d,x) ;main( ) increment( ); increment( ); increment( );A1,1,1, B3,2,1, C1,2,3, Dx的值不确定12以下程序的输出结果是( )。main( )int i,s=0;for(i=1;i2;i+)s=s+i*i*i;printf(s =%dn,s); As1 Bs=9 Cs=8 D 值不确定13请选出以下程序的输出结果( )。sub(int x, int y,int *z) *z=y-x;main( )int a,b,c;sub(10,
6、5,&a);sub(7,a,&b); sub(a,b,&c);printf(%d,%d,%dn,a,b,c) ;A5,2,3 B-5,-12,-7 C-5,-12,-17 D5,-2,-714以下程序的输出结果是( )。#include main() float a=-1,b=2; printf(%.0f,%.0fn,pow(b,fabs(a),pow(fabs(a),b);A2,1 B2,2 C1,2 D以上三个都不对15下列选项中正确的语句组是( )。Achar s8 ;s=Jianzhu; Bchar *s; s=Jianzhu;Cchar s8 ;s=Jianzhu; Dchar *s
7、; s=Jianzhu;16以下程序输出的结果是( )。fun(int a,int b,int c) c=a*b;main( ) int c;fun(4,3,c);printf(%dn,c);A无定值 B1 C6 D017以下程序段的输出结果是( )。A32,28,15 B40,36,15 C32,28,7 D32,28,7.5int x=20,y=40,z=30; while(xy) x+=4,y-=4;z/=2; printf(%d,%d,%d,x,y,z);18以下程序的输出结果是( )。A32 B16 C8 D24typedef union long x2;int y4;char z8
8、;MYTYPE;MYTYPE them;main() printf(%dn,sizeof(them);19语句printf(%dn,strlen(xini0ng);的输出结果是( )。A7 B6 C4 D320fread和fwrite函数常用来要求一次读入/输出()数据 A一个整数 B一组 C一个字节 D一个实数三阅读下列程序,按题意填空(每空2分,共20分)1以下程序是判断某年(year)是否是闰年,请填空。#include main() int year; printf(Please input year:); scanf(%d,&year); if(year%4=0 & year% 10
9、0 0 ) year%400=0) printf(a leap year.n; 2输入一行字符,分别统计出其中英文字母、空格、数字以及其它字符的个数。#include main( ) char c;int letter=0,space=0,digit=0,other=0; printf(Please Input:n ); while(c=getchar() n) if(c=a c=A& c=0 c=9) digit+; else other+; printf(%d, %d, %d, %d , letter, space, digit, other );3以下函数的功能是把两个整数指针所指的存储
10、单元中的内容进行交换。请填空。change(int *x, int *y) int *t; *t=*y;*y=_;*x=_ _;4用数组求Fibonacci数列前20个数,要求每行输出5个数据。#include main( ) int i;int f20=1,1; for(i=2;i20;i+) fi= ; for(i=0;i20;i+) if(i%5= ) printf(n); printf(%12d,fi); 四程序阅读题:(每题2分,共计8分)1有如下程序段:int a, b; scanf(%d,&a);do b=a%10; printf(%d,b); a/=10;while(a);若输
11、入整数246,则输出结果: 。 2main( ) int i=3; switch(i) case 1: case 2:printf(%d,i); case 3: case 4: default:printf(OK); 程序输出结果: 。3以下程序的输出结果: 。main() int x=2;while(x-);printf(%dn,x);4有以下程序:struct s int num ; char name20; int age; ; main( ) struct s stud3=101, Li,18,102, Wang,19,103, Zhang,21; fun(stud+2); fun(struct s *p) printf(%dn,(*p).num); 输出结果: 。五编程题(共16分)1(10分)从键盘上向一维数组输入10个整型数据,找出这些数据中的最大值。2(6分)编写一个自定义函数root( ),用来求3个实数的乘积的平方根。要求:数据的输入、输出在主函数中实现。