1、=ch=A)&(ch=Z)C)(A=ch) D)(ch&=Z) 7、能够完成如下函数计算的程序段是- 1 x A)y = - 1 ; B)if ( x = 0 ) if ( x != 0 ) if ( x 0 ) y = 1 ; else y = 0 ; else y = 0 ; y = -1 ;C)y = 0 ;D)y = - 1 ; = 0 )else y = 0 ; else y = -18、下列循环语句中,执行循环体的次数是 int i,j; while(10) printf(“ABC”);A)10次 B)0次 C)1次 D)无限次9、若i、j已定义为int类型,则以下程序段中的内循环
2、体的执行次数是 for(i = 4; i; i-) for(j = 0; j 5; j+) A)10 B)15 C)20 D)2510、数组赋初值时的数据项的个数与数组元素的个数的下列关系中,错误的是A)大于 B)小于 C)等于 D)小于等于11、下列数组初始化的定义中,错误的是A)int a5=a;B)char s5=“a123b”;C)int n=6,5,4,3,2,1; D)int b3=1,2,3;12、已知:static int a3=5,3,13;数值为0的元素是A) a00 B) a02 C) a10 D) a2013、关于下列函数定义的描述中,错误的是A) 定义函数时必须指出函
3、数名和函数的类型B) 定义函数时可以省略函数的类型C) 函数可以嵌套定义D) 函数不可以嵌套定义14、下面程序的输出结果是 void prtv( int x) printf(“%dn”,+x); int t=10;prtv(t);A) 8 B) 9 C) 10 D) 1115、下面程序的输出结果是main( ) int a =1,2,3,s,b,*p; s=1; p=a; for(b=0;b3;b+) s*=*(p+b); printf(“s=%dn”,s);A) s=1 B) s=2 C) s=3 D) s=6二、 判断(每空1分,共10分)1、C语言有三种结构化程序设计方法,分别为顺序结构
4、、选择结构和循环结构。 ( )2、C语言规定:标识符应由字母、下划线和数字组成,且可以是上述字符的任意组合,其长度也是任意的。( )3、数组在定义时没有必要指定数组的长度,其长度可以在程序中根据元素个数再决定。4、if语句有多种使用方法,其中if子句和else 子句也都可以单独使用。5、for语句作为循环控制语句时,从语法上将其括号内各个表达式都可缺省,但表达式内的分号却不可以却省。 ( )6、字符串是C语言中一种基本数据类型,字符串总是以n作为结束标志。7、在C语言中,程序的最小编译单位是源文件,最小功能单位是函数。8、在定义指针型变量时指定的基类型为该指针变量所能指向的变量类型。9、结构体
5、与数组一样,属于构造类型数据,且在结构体中的各个成员的类型也可不同。10、在发生函数调用时,主被调函数中的参数可以是简单变量,也可以是数组名,当采用数组名作为参数时其数据传递方式为单向值传递。三、 程序填空(每小题2分,共12分)1、求一个3位数各个位上值的和。(如123为1+2+3=6)#include int m,s,a,b,c,d,e;scanf(%d,&m); a=m/100; b=(1) ;c=(2) ;s=a+b+c;printf(s=%d,s);2、求1!+2!+3!+4!+5!的和。main() int n,s=0,t=1; for(n=1;n=5;n+) t=(3) ; s=
6、(4) ; printf(1!=%dn3、用起泡法对十个数由小到大排序。 int a11, i, j, t; printf(“input 10 numbers: n”); for(i=1;i11;i+) scanf(“%d”,&ai); printf(“n”); for (j=1;j=9;j+)for(i=1; (5) ; i+)if ( (6) t=ai;ai=ai+1; ai+1=t;printf(“the sorted numbers:for ( i=1; i printf(“%d”,ai);四、 读程序写出结果(本大题共5道小题,每小题4分,共20分)1、写出下面程序的执行结果 #in
7、clude b ) c = 1 ;else if ( a = b ) c = 0 ; c = -1 ;printf ( “%dn”, c ) ;3、以下程序的运行结果是 int i,j,k;4; for(j=1;4-i; );for(k=1;k=2*i-1;k+)%c,A+i-1);n4、以下程序的运行结果是main( int a55,i, j ;for( i=0;5;i+) ai0 =1; aii =1; for( i=2; i+ for(j=1; ji ; j+ )aij =ai-1j-1 + ai-1j;for(i=0; for( j=1;=i; j+) printf(“%5d”,aij
8、);printf(“n”);5、以下程序运行后,如果从键盘上输入ABCDE,则输出结果为#includefunc(char str )int num =0;while(*(str+num)!=0) num+;return(num); char str10,*p=str;gets(p);%dn,func(p);五、 编程题(本大题28分,第一题8分,第二题9分,第三题11分)1、计算分段函数的值: 1-x (x=0) 编程实现。2、曾有一位印度国王要奖赏他的聪明能干的宰相达依尔。达依尔只要求在国际象棋的棋盘格上放置小麦粒,第一格放1粒,第二格放两粒,第三格放4粒,第四格放8粒,,最后能有多少小麦
9、粒呢?编程实现。3、输入10个学生3门课(语文、英语、数学)的成绩,用函数求:找出总分最高的分数所对应的学号和总成绩。答案:一、ACCBA, DBDCA, ABCDD二、 、 、 、 、三、1、m/10%10,m%10。2、n*t,t+s。3、iai+1。四、1、x=3,a=2,b=3。2、c=-1。 3、 A 4、1 5、6 B B B 1 2 1 C C C C C 1 3 3 1 1 4 6 4 1 五、1、#include stdio.h int x,y;x); if(x int n; double term, sum = 0; /*累加求和变量赋初值*/ for (n=1; n=64
10、; n+) term = pow(2, n-1); /*根据累加项的规律计算累加项 */ sum = sum + term; /*作累加运算*/sum = %en, sum); /*打印总麦粒数*/volum = %en, sum/CONST);/*打印折合的总麦粒体积数*/ 方法二:#define CONST 1.42e8 /*定义符号常量CONST值为1.42e8 */ double term = 1, sum = 1; /*累乘求积、累加求和变量赋初值*/ for (n=2; n+) term = term * 2; /*根据后项总是前项的2倍计算累加项*/ /*打印折合的总麦粒体积数*
11、/3、struct student int num; int chinese; int english; int math; int sum; stu10; int i; for(i=0;10; scanf(%d%d%d%dstui.num,&stui.chinese,&stui.english,&stui.math); stui.sum=stui.chinese+stui.english+stui.math; max(); max( ) int i,j,total=0,number=0; for(i=0;1; for(j=i+1; if(stui.sumstuj.sum) total=stuj.sum; number=stuj.num;总分最高的学生成绩是%d,学号是%d,total,number);另: max() i=0; for(j=2; i=j;,stui.sum,stui.num); .
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1