一、单项选择题(每小题2分,共40分)1、sizeof(float)是()A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式2、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为()。
A. 100 765.12B. i=100,f=765.12C. 100<回车> 765.12D. x=100 y=765.123、#include<stdio.h>void main(){int a=3,b=2,c=1;int x=10,y=20;if(a<b)if(b!=0)if(!x)y=1;else if(x)y=0;y=-1;printf("%d",y);}上面的C程序的输出结果是()。
A. 20B. 1C. 0D. -14、C语言中,while和do…while循环的主要区别是()。
A. do…while的循环体至少无条件执行一次B. while的循环控制条件比do…while的循环控制条件严格C. do…while允许从外部转到循环体内D. do…while的循环体不能是复合语句5、执行下面的C程序段后,输出结果是()。
int a=5;while( a- -);printf( "%d",a) ;A. 54321B. 4321C. 0D. -16、在C语言中,()是在所有函数外部声明的。
A. 全局变量B. 局部变量C. 形参D.实参7、分析下面的C程序:#include<stdio.h>void main(){int num=0;while(num<=2){num++;printf("%d ",num);}}输出结果是()。
A. 1 2 3B. 0 1 2C. 2 3D. 1 28、下面的C语言代码段的输出结果是()。
int j;for(j=1; j<10; j+=2)printf("%d ",j);A. 1 2 3 4 5 6 7 8 9B. 2 4 6 8C. 1 3 5 7 9D. 1 2 4 6 89、在C语言中,表达式:10!=9 的值是()。
A. trueB. 非零值C. 0D. 110、分析下面的C代码段:char str1[15] = "Sea View";char str2[15] = "Sea Breeze";strcpy(str1,str2);printf("%s\n",str1);则输出结果是()。
A. Sea ViewB. Sea BreezeC. Sea View Sea BreezeD. Sea Breeze Sea View10、若w=1,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y:z的值是()。
A. 4B. 3C. 2D. 111、表达式18/4*sqrt(4.0)/8值的数据类型为()。
A. intB. floatC. doubleD. 不确定12、在C语言中,不正确的int类型的常数是( )。
A. 32768B. 0C. 037D. 0xAF13、语句:printf("%d",(a=2)&&(b= -2);的输出结果是( )。
A. 无输出B. 结果不确定C. -1D. 114、下列描述中不正确...的是( )。
A. 字符型数组中可以存放字符串B. 可以对字符型数组进行整体输入、输出C. 可以对整型数组进行整体输入、输出D. 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值15、以下选项中不能..作为C 语言合法常量的是()。
A.'cd'B. 0.1e+6C. "\a"D. '\011'16、以下叙述中错误的是()。
A.用户定义的函数中可以没有return 语句B.用户定义的函数中可以有多个returnC.用户定义的函数中若没有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型,以下不能..中的值为大写字母的表达式是A.kk>='A'&&kk<='Z'B.!(kk>='A'‖kk<='Z')C.(kk+32)>='a'&&(kk+32)<='z'D.isalpha(kk)&&(kk<91)19A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元20、以下叙述中错误..的是A.改变函数形参的值,不会改变对应实参的值B.函数可以返回地址值C.可以给指针变量赋一个整数作为地址值D.当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL21、以下描述正确的是()。
A.C程序的执行是从main函数开始,到本程序的最后一个函数结束B.C程序的执行是从第一个函数开始,到本程序的最后一个函数结束C.C程序的执行是从main函数开始,到本程序的main函数结束D.C程序的执行是从第一个函数开始,到本程序的main函数结束二、将下列程序补充完整。
(每空2.5分,共30分)1.输入三角形的三条边a,b,c,求三角形的面积。
#include <math.h>#include <stdio.h>void main( ){ 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<n2),统计两整数范围内被3整除的数的个数。
#include <stdio.h> void main() {int n1,n2,j=0,n=0;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", &n1, &n2___(4) _____printf("输出的值非法!enter 任意键退出\n");getch();exit(0);___ (5)_____ j%3==0__________________________________ 3.输入两个整数,n1,n2(要求n1<n2),统计两整数范围内的素数的个数。
#include <math.h> #include <stdio.h>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 <stdio.h> void main( ){int x ,n ,k ,k1=0,k2=0,k3=0; printf(“input n=:”);( 9 ) for (k=0;k<n ;k++) {scanf (“%d ”,&x ); if (x<0)k1++; ( 10 ) ;else k3++;printf(“k1=%4d,k2=%4d,k3=%4d\n”,k1,k2,k3)}}(9)scanf (" %d", &n);(10)else if (x==0) k2++;5.设计一个程序完成以下功能:若从键盘输入英文字母,则原样输出;输入其他字符不理会,直到输入Q键结束.#include <stdio.h>void main( ){ char ch;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 43 1 2 7 1 64 6 85 2 82.求元素个数为10的一维数组元素中的最大值、最小值和平均值。