一、 单项选择题(每小题2分,共40分) 1、sizeof(float)是( ) A. 一个双精度型表达式 B. 一个整型表达式 C. 一种函数调用
int a=5;
while( a- -);
printf( \"%d\; A. 54321 B. 4321 C. 0 D. -1
6、在C语言中,( )是在所有函数外部声明的。 D. 一个不合法的表达式
2、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf(\"i=%d,f=%f\
为了把100和765.12分别赋给i和f,则正确的输入为()。 A. 100 765.12 B. i=100,f=765.12 C. 100<回车> 765.12 D. x=100 y=765.12 3、#include int a=3,b=2,c=1; int x=10,y=20; if(ay=1; else if(x) y=0; y=-1; printf(\"%d\ } 上面的C程序的输出结果是( )。 A. 20 B. 1 C. 0 D. -1 4、C语言中,while和do…while循环的主要区别是( )。 A. do…while的循环体至少无条件执行一次 B. while的循环控制条件比do…while的循环控制条件严格 C. do…while允许从外部转到循环体内 D. do…while的循环体不能是复合语句 5、执行下面的C程序段后,输出结果是( )。 第1页,共12页 A. 全局变量 B. 局部变量 C. 形参 D.实参 7、分析下面的C程序: #include int num=0; while(num<=2){ num++; printf(\"%d \ } } 输出结果是( )。 A. 1 2 3 B. 0 1 2 C. 2 3 D. 1 2 8、下面的C语言代码段的输出结果是()。int j; for(j=1; j<10; j+=2) printf(\"%d \ A. 1 2 3 4 5 6 7 8 9 B. 2 4 6 8 C. 1 3 5 7 9 D. 1 2 4 6 8 9、在C语言中,表达式:10!=9 的值是( A. true B. 非零值 C. 0 D. 1 10、分析下面的C代码段: 第2页,共12页 。 ) char str1[15] = \"Sea View\"; A.用户定义的函数中可以没有return 语句 char str2[15] = \"Sea Breeze\"; strcpy(str1,str2); printf(\"%s\\n\则输出结果是( )。 A. Sea View B. Sea Breeze C. Sea View Sea Breeze D. Sea Breeze Sea View 10、若w=1,x=2,y=3,z=4,则条件表达式w 12、在C语言中,不正确的int类型的常数是( )。 A. 32768 B. 0 C. 037 D. 0xAF 13、语句:printf(\"%d\",(a=2)&&(b= -2);的输出结果是( )。 A. 无输出 B. 结果不确定 C. -1 D. 1 14、下列描述中不正确...的是( )。 A. 字符型数组中可以存放字符串 B. 可以对字符型数组进行整体输入、输出 C. 可以对整型数组进行整体输入、输出 D. 不能在赋值语句中通过赋值运算符\"=\"对字符型数组进行整体赋值15、以下选项中不能..作为C 语言合法常量的是( )。 A. 'cd' B. 0.1e+6 C. \"\\a\" D. '\\011' 16、以下叙述中错误的是( )。 第3页,共12页 。 B.用户定义的函数中可以有多个return 语句,以便可以调用一次返回多个函数值 C.用户定义的函数中若没有return 语句,则应当定义函数为void 类型 D.函数的return 语句中可以没有表达式 17、若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m 数组元素的引用中错误的是 ( )。 A.m[--i] B.m[2*2] C.m[m[0]] D.m[m[i]] 18、已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能..正确判断出kk中的值为大写字母的表达式是 A.kk>='A'&&kk<='Z' B.!(kk>='A'‖kk<='Z') C.(kk+32)>='a'&&(kk+32)<='z' D.isalpha(kk)&&(kk<91) 19、若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是 A.函数的实参和其对应的形参共占同一存储单元 B.形参只是形式上的存在,不占用具体存储单元 C.同名的实参和形参占同一存储单元 D.函数的形参和实参分别占用不同的存储单元 20、以下叙述中错误..的是 A.改变函数形参的值,不会改变对应实参的值 B.函数可以返回地址值 C.可以给指针变量赋一个整数作为地址值 D.当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL 21、以下描述正确的是( )。 A.C程序的执行是从main函数开始,到本程序的最后一个函数结束 B.C程序的执行是从第一个函数开始,到本程序的最后一个函数结束 C.C程序的执行是从main函数开始,到本程序的main函数结束 D.C程序的执行是从第一个函数开始,到本程序的main函数结束 二、将下列程序补充完整。(每空2.5分,共30分) 1.输入三角形的三条边a,b,c,求三角形的面积。 #include 第4页,共12页 密 封 线 内 不 得 答 题 ) { float a,b,c,d,t,s; printf(“请输入三角形的三条边:”); scanf(“%f,%f,%f”,&a,&b,&c); if ( 1 ) printf(“%f%f%f不能构成三角形!”, a,b,c); else {t=( 2 )/2; s=sqr(t*(t-a)*(t-b)*(t-c)); printf(“a=%7.2f,b=%7.2f,c=%7.2f,area=%7.2f\\n”, a,b,c,s);} } (1) ____a+b<=c&&a+c<=b&&b+c<=a______________________ (2) ____a+b+c_______________________________________ 2.输入两个整数,n1,n2(要求n1 printf(“\\n请输入两个数:”); scanf ( ( 3 ) ); if(n1>n2){ ( 4 ) } for(j=n1;j<=n2,j++) if ( 5 ) n++; printf(“a=%5d,b=%5d,n=%5d\\n”n1,n2,n);} (3)______\"%d %d\ (4) _____printf(\"输出的值非法!enter任意键退出\\n\");getch();exit(0);___ (5)_____ j%3==0__________________________________ 3.输入两个整数,n1,n2(要求n1 第5页,共12页 int prime (int x) { int k; for ( 6 ) if (x%k==0) return(0); return(1) } void main() {int a,b,j,n=0; printf(“\\n请输入两个数:”); scanf(“%d,%d”,&a,&b); if(a>b){ (7) } for(j=a;j<=b,j++) if( (8) ) n++; printf(“a=%4d,b=%4d,n=%4d\\n”a,b,n);} (6) _k=2;k<=x-1;k++ (7) _printf(\"输出的值非法!enter任意键退出\\n\");getch();exit(0); (8) prime(j)___________________________________ __ 4.编写程序,输入n个整数(n由键盘输入),统计其中正数、负数和零的个数。 #include {int x,n,k,k1=0,k2=0,k3=0; printf(“input n=:”); ( 9 ) for(k=0;k else k3++; printf(“k1=%4d,k2=%4d,k3=%4d\\n”,k1,k2,k3) }} (9)scanf (\" %d\(10)else if (x==0) k2++; 5.设计一个程序完成以下功能:若从键盘输入英文字母,则原样输出;输入其他字符不理会,直到输入Q键结束. #include do{ch=getchar(); if ( (11) )break; else if( (12) )putchar(ch); }while(1); } (11) ch=='q' || ch=='Q' (12) ch>='a'&& ch<='z' || ch>='A' && ch<='Z' 三、 编程题(从下面的试题中选择其中一题上机完成,两题均作答的,按其中一 题给分,30分) 1.编写程序,将将矩阵 9 7 5 倒置为 9 3 4 3 1 2 7 1 6 4 6 8 5 2 8 2.求元素个数为10的一维数组元素中的最大值、最小值和平均值。 3.编写函数:输入两个正整数m,n,求它们的最大公约数和最小公倍数。 第7页,共12页 编程题1: /* file name: code1.c description:编写程序,将将矩阵 9 7 5 倒置为 9 3 4 3 1 2 7 1 6 4 6 8 5 2 8 date: 2012-12-26 by fxk */ #include int i=0, j=0, a[3][3]={{9,7,5},{3,1,2},{4,6,8}}, b[3][3]={0}; /*输出Arr a 并赋值*/ printf (\"array a:\\n\"); for(i=0; i<3; i++) { for(j=0; j<3; j++) { printf (\"%d\\ b[j][i] = a[i][j]; } putchar('\\n'); } putchar('\\n'); /*输出Arr b:*/ printf (\"array b:\\n\"); for(i=0; i<3; i++) { for(j=0; j<3; j++) { printf(\"%d\\ } putchar('\\n'); } return 0; } 第8页,共12页 密 封 线 内 不 得 答 题 编程题2: /* file name: code2.c description: 求元素个数为10的一维数组元素中的最大值、最小值和平均值 date: 2012-12-26 by fxk */ #include int max_date (int arr[N]); int min_date (int arr[N]); float avg_date (int arr[N]); int main (void) { int arr[10] = {1,2,3,4,5,6,7,8,9,10}; int max = 0, min = 0; float avg = 0; /*求最大值并输出*/ max = max_date (arr); printf (\"max=%d\\n\ /*求最小值并输出*/ min = min_date (arr); printf (\"min=%d\\n\ /*求平均值并输出*/ avg = avg_date (arr); printf (\"avg=%.2f\\n\ return 0; } int max_date (int arr[N]) { int m, i; m = arr[0]; for (i=1; i < N; i++) { if (m < arr[i]) { m = arr[i]; } } return m; } 第9页,共12页 int min_date (int arr[N]) { int m, i; m = arr[0]; for (i=1; i < N; i++) { if (m > arr[i]) { m = arr[i]; } } return m; } float avg_date (int arr[N]) { int i = 0; float avg = 0, sum = 0; for (i=0; i avg = sum / N; return avg; } 第10页,共12页 m,n,求它们的最大公约数和最小公倍数 第11页,共12页 第12页,共12页 密 封 线 内 不 得 答 题 编程题3: /* file name: code3.c description: 输入两个正整数date: 2012-12-26 by fxk */ 因篇幅问题不能全部显示,请点此查看更多更全内容