B(有答案)
一、填空题
1、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。
2、函数swap(arr,n)可对arr数组从第1个元素到第n个元素分别进行两两元素交换。在运行调用函数中的如下语句后,a[o]和a[1]的值分别为_______,原因是_______。
a[0]=1;a[1]=2;swap(a,2);
3、函数swap(int x,inty)可完成对x和y值的交换。在运行调用函数中的如下语句后,a[0]和a[1]的值分别为_______,原因是_______。 a[o]=1;a[1]=2; swap(a[o],a[1]);
4、在C语言中,&运算符作为单目运算符时表示的是_______运算;作为双目运算符时表示的是_______运算。 5、请读程序段: int a=1,b=2;
if(a&b)printf(\"***\\n\"); else printf(\"$$ $\\n\"); 以上程序段的输出结果是_______。
6、若a是int型变量,则表达式(a=4*5,a*2),a+6的值为_______。 7、若有以下定义和语句,为使变量c1得到字符’A',变量c2得到字符’B’,正确的输入形式是_______。
char cl,c2;
scanf(\"%4c%4c\",&cl,8&c2);
8、若有定义floata[3][5];则a数组所含数组元素个数是_______,a数组所占的字节数是_______。 9、设有以下宏定义: #define WIDTH 80
#define LENGTH WIDTH+40
则执行赋值语句:v=LENGTH*20;(v为int型变量)后,v的值是_______。 10、若想输出b数组的10个元素,则下面存在错误的程序行是_______。(每个程序行前面的数字代表行号。)
1 int main()
2 {int b[10]={1,3,5,7,9,2,4,6,8,10},k; 3 for(k=0;k<10;k++,b++) 4 printf(\"%4d\",*b); 5 return0; 6 }
二、选择题
11、下面正确的字符常量是( ) A.\"c\" B. \"\\\\\" C. 'w' D. \"
12、设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )。
A.n=(n*100+0.5)/100.0 B.m=n*100+0.5,n=m/100.0
C.n=n*100+0.5/100.0 D.n=(n/100+0.5)*100.0
13、已有定义intx;floaty;且执行scanf(\"%3d%f”,&x,&y);语句,若从第一列开始输入数据12345口678<回车>,则 y的值为( )。(注:口表示空格) A.无定值 B.45.000000 C.678.000000 D.123.000000
14、设有说明:double y=0.5,z=1.5;int x=10;则能够正确使用C语言库函数的赋值语句是( )。
A.z=exp(y)+fabs(x); B.y=log10(y)+pow(y);
C.z=sqrt(y-z); D.x=(int)(atan2((double)x,y)+exp(y-0.2));
15、以下叙述不正确的是( )
A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main函数 C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面 16、下面是对数组s的初始化,其中错误的语句是( )。 A.char s[5]={\"abc\; B.chars[5]={'a','b','c'}; C.chars[5]=\"\"; D.char s[5]=\"abcde\"; 17、以下for循环的执行次数是( )。
for(x=0,y=0;(y=123)&&(x<4);x++); A.是无限循环 B.循环次数不定 C.执行4次 D.执行3次 18、若用数组名作为函数调用的实参,则传递给形参的是( )
A.数组的首地址 B.数组第一个元素的值 C.数组中全部元素的值 D.数组元素的个数
19、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( )
int main() {int*p,*q,a,b; p=&a;
printf(\"input a:\"); scanf(\"%d\",*p); }
A.*p表示的是指针变量p的地址
B.*p表示的是变量a的值,而不是变量a的地址 C.*p表示的是指针变量p的值 D.*p只能用来说明p是一个指针变量 20、设有以下定义:
char*cc[2]={\"1234\",\"5678\");则正确的叙述是( )。
A.cc数组的两个元素中各自存放了字符串”1234”和\"5678”的首地址 B.cc数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 C.cc是指针变量,它指向含有两个数组元素的字符型一维数组 D.cc数组元素的值分别是1234和5678 21、以下程序的输出是( )。
#include printf(\"OK\"); else if(x<2)printf(\"%d\\n\",x); else printf(\"Quit\"); return 0; } A.OK B.Quit C.1 D.无输出结果 22、下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z变成B。请选择填空( )。 #include while((c=getchar())!=\\n') { if(c>='a'8.&.c<='z/) c=c-32+2: if(c>'Z)【】; } printf(\"%c\",C.; return 0; } A.c='B' B.c='A' C.c-=26 D.c=c+26 23、下面程序的功能是计算1~10之间的奇数之和及偶数之和。请选择填空( )。 #include {int a=0,b,c=0,i; for(i=0;i<=10;i+=2) {a+=i; b=i+1; c+=b; printf(\"The sum of even=%d\\n\",A.; printf(\"The sun of odd=%d\\n\",【】): return 0; } A.c-10 B.c C.c-11 D.c-b 24、以下程序可选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。请选择填空( )。 #include if((k%3==0&&a2==5)|l(k%3==0&&al==5)) {printf(\"%d\",k); n++; return n; } else return-1; } int main(){int i,k,n,m; for(k=10 ;k<=99;k++) {m=sub(k,n); if(m!=-1)n=m; } printf(\"\\nn=%d\",n); return(O); } A.a2*10 B.a2 C.a2/10 D.a2%10 25、下面程序段的运行结果是( )。 char a[7]=\"abcdef\"; char b[4]=\"ABC\"; strcpy(a,B.; printf(\"%c\",a[5]); A.口 B.\\0 C.e D.f(其中口表示1个空格) 三、读程序填空 26、有以下程序: #include scanf(\"%d%c%c”,&k,&c1,&c2); printf(\"%d,%c,%c\\n\",k,c1,c2); return 0; } 若运行时从键盘输入:55AB<回车>,则输出结果是_______。 27、以下程序的运行结果是_______。 #include 28、已定义一个含有30个元素的数组s,函数favl的功能是按顺序分别赋予各元素从2开始的偶数,函数fav2则按顺序每5个元素求一个平均值,并将该值存放在数组w中。请填空。 #include {int i;float k=2.0;for(i=0;i for(k=0,i=0;i {float s[SIZE],w[SIZE/5]; int i;favl(s);for(i=0;i for(i=0;i int del(int a[],int n,int x) {int p,i;p=0; while(x>=a[p]& &p #include {int a[8]={25,57,48,37,12,92,86,33},i,x; scanf(\"%d”,x); for(i=0;i<8;i++) if(x==a[i]) ·{printf(\"Found!The index is:%d\\n\",--i);_______;} if(_______) printf(\"Can't found!\"); return 0; } 31、若运行时输入:4.4<回车>,则以下程序的运行结果是_______。 #include {float costPrice,sellingPrice; printf(\"Enter costPrice$:\"); scanf(\"%f\",&costPrice); if(costPrice>=5) {sellingPrice=costPrice+costPrice*0.25; printf(\"Selling Price(0.25)$%6.2f\ } else (sellingPrice=costPrice+costPrice*0.30; printf(\"Selling Price (0.30)$%6.2f', sellingPrice); return 0; } 32、下面程序的运行结果是_______。 #include do {switch(i%2) {case 4:i--;break; case 6:i--;continue; } i--;i--; printf(\"%d\",i); }while(i>0); return 0; } 33、下面程序的运行结果是_______。 #include if((ptr=(int*)malloc(100*sizeof(int)))!=NULL) {p[0]=ptr; for(i=1;i<5;i++) p[i]=p[i-1]+1; for(i=0;i<10;i++)*ptr++=i; for(i=0;i<5;i++) printf(\"%3d\",*p[i]); } return(0); } 四、编程题 34、编写程序实现功能:输入整数a和b,若a2+b2>100,则输出a2+b2百位以上数字,否则直接输出a2+b2的和 35、编写程序实现功能:读入两个运算数(datal和data2)及一个运算符(op),计算表达式datal op data2的值,其中op可以为十、一、*、/四个符号中的任一种(用switch语句实现)。 参 一、填空题 1、【1】scanf【2】printf 2、【1】a[0]=2a[1]=1 【2】因实参是地址,已对指定地址中的内容进行了交换。 【1】3、a[0]=1 a[1]=2 【2】单向值传递,不能返回交换后的值。 4、【1】取地址【2】按位与 5、$$$ 6、26 7、A囗囗囗B囗囗囗<回车> 8、【1】15【2】60 9、880 10、第3行 二、选择题 11、C 12、B 13、B 14、D 15、D 16、D 17、C 18、A 19、B 20、A 21、A 22、C 23、C 24、A 25、D 三、读程序填空 26、55,,A 27、261 28、【1】s[i]=k【2】sum=0 29、【1】p=p+1【2】a[i]=a[i+1] 30、【1】break【2】i==8 31、Selling Price(0.30)$5.72 32、3 1 -1 33、0 1 2 3 4 四、编程题 34、#include scanf(\"%d%d\",&a,&.b); x=a*a+b*b; if(x>100) {y=x/100;printf(\"%d\",y);} else printf(\"%d\",a+b); return 0 } 35、#include {float datal,data2,data3; char op; printf(\"\\ nType in your expression:\"); scanf(\"%f%c%f\ { case'+': data3=datal+data2; break; case'-': data3=datal-data2; break; case'*': data3=datal* data2; break; case'/': i f(data2==0) {printf(\"\\ nDivision by zero!\"); exit(1);} data3=datal/data2; break; printf(\"This is %6.2f%c%6.2f=%6.2f\\n\ return 0; } 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- esig.cn 版权所有 湘ICP备2023023988号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务