一、单项选择题(每小题2分,共40分)1、sizeof(float)是()A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式2、设 i 是int 型变量,f 是float 型变量,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f);为了把100 和分别赋给i 和f,则正确的输入为()。
A. 100B.i=100,f=765.12C. 100<回车>D. x=100y=3、#include<>voidmain(){inta=3,b=2,c=1;intx=10,y=20;if(a<b)if(b!=0)if(!x)y=1;elseif(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 程序段后,输出结果是()。
inta=5;while(a--);printf("%d",a);A. 54321B. 4321C.0D.-16、在 C 语言中,()是在所有函数外部声明的。
A. 全局变量B. 局部变量C.形参D.实参7、分析下面的 C 程序:#include<>voidmain(){intnum=0;while(num<=2){num++;printf("%d",num);}}输出结果是()。
A. 123B. 012C.23D.128、下面的 C 语言代码段的输出结果是()。
intj;for(j=1;j<10;j+=2)printf("%d",j);A. 123456789B. 2468C. 13579D. 124689、在 C 语言中,表达式:10!=9 的值是()。
A.trueB. 非零值C.0D.110、分析下面的 C 代码段:charstr1[15]="SeaView";charstr2[15]="SeaBreeze";strcpy(str1,str2);printf("%s\n",str1);则输出结果是()。
A. SeaViewB. SeaBreezeC. SeaViewSeaBreezeD. SeaBreezeSeaView10、若w=1,x=2,y=3,z=4,则条件表达式w<xw:y<zy:z 的值是()。
A.4B.3C.2D.111、表达式 18/4*sqrt/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.+6C."\a"D.'\011'16、以下叙述中错误的是()。
A.用户定义的函数中可以没有 return 语句B.用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值.....C .用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D .函数的 return 语句中可以没有表达式17、若有定义语句: int m[]={5,4,3,2,1},i=4; ,则下面对 m 数组元素的引用中错误的是 ( )。
A .m[--i] [2*2] [m[0]][m[i]]18、已知字母 A 的 ASC Ⅱ代码值为 65,若变量 kk 为 char 型,以下不能..正确判断出 kk 中的值为大写字母的表达式是 >='A'&&kk<='Z' B.!(kk>='A' ‖ kk<='Z') C.(kk+32)>='a'&&(kk+32)<='z' (kk)&&(kk<91)19、若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是 A .函数的实参和其对应的形参共占同一存储单元 B .形参只是形式上的存在,不占用具体存储单元 C .同名的实参和形参占同一存储单元 D .函数的形参和实参分别占用不同的存储单元20、以下叙述中错误..的是A .改变函数形参的值,不会改变对应实参的值B .函数可以返回地址值C .可以给指针变量赋一个整数作为地址值D .当在程序的开头包含文件时,可以给指针变量赋 NULL 21、以下描述正确的是( )。
程序的执行是从 main 函数开始,到本程序的最后一个函数结束 程序的执行是从第一个函数开始,到本程序的最后一个函数结束 程序的执行是从 main 函数开始,到本程序的 main 函数结束 程序的执行是从第一个函数开始,到本程序的 main 函数结束二、将下列程序补充完整。
(每空分,共 30 分)1.输入三角形的三条边 a,b,c,求三角形的面积。
#include <>#include <> 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 <>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 <>#include <>int prime(int x){int k;for(6)(9)scanf("%d",&n);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 <>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)}}(10)else if(x==0)k2++;5.设计一个程序完成以下功能:若从键盘输入英文字母,则原样输出;输入其他字符不理会,直到输入 Q 键结束.#include <>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.编写程序,将将矩阵934716528倒置为953 47 162 82.求元素个数为 10 的一维数组元素中的最大值、最小值和平均值。
3.编写函数:输入两个正整数 m,n,求它们的最大公约数和最小公倍数。