(8)(9)重庆电子工程职业学院2007-2008学年第一学期一、单选题(1~5题每题1分 6~20每题2分 共35分) (1)以下字符列中,能作为C 程序自定义标识符的是 _____A . num(10)B. file_bakC. break(2 )下列语言中计算机能直接识别的语言是 ___ A.汇编语言B.C 语言C.机器语言适用班级:计算机应用系、软件工程系班级 学号 姓名 (3) C 语言中运算对象必须是整型的运算符是 A)B) / C)= D) <= 以下数组定义正确的是 _____ int a [5]; B. char 8th[10]; C. char ch [-100]; D. float f (10);不是C 语言基本数据类型的是 _______ A 、指针类型 B 、整型 C 、无符号长整型 D 、单精度型 程序运行结果的正确的是 _____mai n(){ int a = - 1, b=4, k;k=(a + + < = 0)&&( ! (b - - < =0)); printf ( "% d % d % d \ n ", k , a, b); }A 、0 0 3B. 01 2 C. 1 0 3D. 1 1 2已知scanf( a=%d,b=%d,c= %d',&a,&b,&c);则正确的输入形式是A) a=12b=24c=36 B) 12,24,36 C) a=12,b=24,c=36 D) 122436程序片段执行后输出结果是. int x=100, y=200;printf ("% d",(x,y));100B 、 200C 、100,200D 、编译出错程序片段执行后输出结果是.int x=100,y=200;《程序设计基础》期末考试试卷(卷)D class + 2D. Java(10) 设有程序段:int x=8; while (x=0) x=x-1;则下列描述正确的是 _______A 、 while 循环将执行 10 次 C 、 while 循环将一次也不执行printf ("% d", x<y ? x : (x, y)); C 、 100,200A 、100B 、 200D 、编译出错(11)下面程序段的运行结果是 ______ char c[]={ ‘a ',‘b ',‘\0',‘c ' printf( “ %s\ n ” ,c) ; A) ab c B) ‘a '‘ b ' ,‘\0'}; C) abc D) ab (12) C 语言规定,函数返回值的类型由 A) return 语句中的表达式类型 B) 调用该函数时的主调函数类型 C) 调用该函数时的形参类型 在定义该函数时所指定的函数类型 所决定。
(13)设有定义:int a=2,b=3,c=4;,则以下选项中值为 0的表达式是. A. (!a==1)&&(!b==0) B. a C .a && b D . a||(b+b)&&(c-a) (14) 有以下程序段: int k = 0; while (k = =1) k + + ;while 循环执行的次数是_ A) 无限次C) 一次也不执行 B) 有语法错,不能执行 D) 执行 1 次 (15)当调用函数时,实参是一个数组,则向函数传递的是 ______ A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值 (16)以下正确的叙述是_______ A) 在 C 语言中, main 函数必须位于文件的开头 B) C 语言的每行中只能写一条语句 C) C 语言本身没有输入、输出语句 D) 对一个C 语言程序进行编译预处理时,可检查宏定义的语法错误循环将执行无限次 循环将执行 1次 0.B 、 while D 、 while(17) ________ 以下是非法函数调用语句。
A) char c= ‘ T' ; B) char c;pu tchar(c); getchar(c);C) putchar(0x7) D) putchar( ‘ d' +1);(18) ________________________________ 以下不正确的一维数组定义语句是__________________________double a[5]={1.0 , 2.7};float a[5]={1.0 , 2.7, 2.8, 2,9, 3.1 , 4.5}; char a[]={ ‘ 1' ,‘ 2' , ‘ \101' , ‘ \t' };char a[]={ ‘ \x10' , ‘ \xa' , ‘ \r' };(19)以下程序的运行结果是.#i nclude <stdio.h>main (){int i=0;while(1){ printf( * ”);i++;if(i<3) break;}printf( \'n");}A) *C) **(20)如下程序: int run c(i nt a,i nt b){return(a+b);} main (){int x=2,y=5,z=8,r; r=runc(run c(x,y),z); printf( %d\n”,r);}该程序的执行结果是.二、填空题(8空共16分)设X为int型变量,请写出描述“ X是偶数”的表达式是:2、C语言中的基本数据类型分为型和字符型.3、在数组int score[10]={1,2,3,4,5,6}中,元素定义的个数有个,其中score[8]的值B) ***D) ****A) 12 B) 13 C) 14 D) 151、4、循环语句:for(i= - 1;i<3;i++)printf( “!”);的循环次数是:O5.C 语言提供的三种逻辑运算符是 三、判断题(10题10分)fOr(i=O;i<1O;i++)for (j=O ;j<1O ;j++)9. printf 函数是C 语言本身的一部分。
10. 引用数组的元素的时候,下标不能使用变量。
四、程序填空(5空10分)1.以下程序的功能是:从键盘上输入若干个学生的成绩, 和最低成绩,当输入负数时结束输入,请填空。
mai n (){ float x,amax,am in; scanf (“ %f ”,&x );amax=x; amin=x; while (【1】) { if (x>amax ) amax=x;if (【2】)amin=x; scanf ( “ %f ,&x ); } printK “\namax=%f\namin=%f\n ” ,amax,amin );}2. Fibo nacci 数列中的头两个数是1和1,从第三个数开始,每个数等于前两个数之和。
下述程序计算此数列的前 20个数,且每行输出5个数,请填空。
1. 2.语句 语句 “int n=10; int a[n];是合法的。
( ) “ char str[10] ={"abcde"}; prin tf("%d", strle n(str)); 输出结果不是 10,也不是 5,而是6。
3. 4. 5. 6. 7. 8. 宏定义 若 i=3, 若 i=3,“ #define S(a) a*a+a 与 “ #”efine S(a) (a*a+a)在任何情况下都等价。
( 则执行语句“j=++i;之后j 的值为4。
( ) 则执行“j=i++; j=++i;之后”的值为5。
() 根据语句 “ int b[3][3]= {2, 2, 9,4, 5, 3, 6, 7, 8};,则可以知道以下语句 “ int x ; while (1) { x++;} ”不能通过编译。
( 有以下程序片段:b[1][1]的值为 4。
( 语句1 “,则语句1要执行 20 次。
(和!。
统计并输出最高成绩#i nclude <stdio.h> void mai n() { int f,f1=1,f2=1; int i; printf(“%6d,%6d ,f1,f2); for (i=3;i<=20;i++) { f=printf( if(五、分析结果(3题共9分)1、main ()int a;scanf( “%d ”,&a); if (a++>10)printf ( “ %d \ n ” ,++a); else printf ( “ %d \ n ”,a--); }运行时输入10 ,则运行结果为:2、#include<stdio.h> mai n(){ int x,y,z=2; x=z++; y=++z; printf( }运行结果:【3】“ %6(J ,f); 【4】)printf( “ \n ”); f1=f2;【5】} } “%d %d %d ”,x,y,z);3.、main()int a, b ;1、求 2--100 的质数。
(8 分)2、从键盘上输入任意一些字符,统计字母的个数、数字的个数以及其他字符的个数(除数 字和字母以外的字符均属于其他字符) ,当键盘上敲入 '$'时结束。
(12 分)scanf ( " % d , & a , ); scanf ( " % d , & b );swap }运行时输入: 六、swap ( a, b );( int a, intint t ; t = a;a = b; b= t;printf ( " a = % d ,b= % d\ n ", a, b );100,200运行结果:编程题( 2题 20 分)。