试卷编号:11829 所属语言:C语言 试卷方案:gl1 试卷总分:100分 共有题型:6种 ━━━━━━━━━━━━━━━ 一、填空 共10题 (共计20分) ━━━━━━━━━━━━━━━ 第1题 (2.0分) 题号:1543 C语言中调用【1】函数来关闭文件. 答案: =======(答案1)======= fclose =========或========= fclose() 第2题 (2.0分) 题号:1741 设有 int a[2][2]={{1,2},{2,1}},则a[1][1]的值为【1】. 答案: =======(答案1)======= 1 第3题 (2.0分) 题号:1574 已知a=13,b=6, a&&b的十进制数值为【1】. 答案: =======(答案1)======= 1 第4题 (2.0分) 题号:1505 已知a=13,b=6, a>>2的十进制数值为【1】. 答案: =======(答案1)======= 3 第5题 (2.0分) 题号:1204 表达式 a+=b 相当于表达式【1】. 答案: =======(答案1)======= a=a+b =========或========= a=b+a 第6题 (2.0分) 题号:308 当a=3,b=2,c=1;时,执行以下程序段后 a=【1】. if(a>b) a=b; if(b>c) b=c; else c=b; c=a; 答案: =======(答案1)======= 2 第7题 (2.0分) 题号:644 设x=4<4-!0,x的值为【1】. 答案: =======(答案1)======= 0 第8题 (2.0分) 题号:677 int x=2,y=3,z=4; 则表达式x+y>!z的值为【1】. 答案: =======(答案1)======= 1 第9题 (2.0分) 题号:1732 说明变量时,若省略存储类型符,系统默认其为【1】 答案: =======(答案1)======= 自动型 =========或========= auto 第10题 (2.0分) 题号:501 数组在内存中占一段连续的存储区,由【1】代表它的首地址. 答案: =======(答案1)======= 数组名 ━━━━━━━━━━━━━━━ 二、判断 共10题 (共计10分) ━━━━━━━━━━━━━━━ 第1题 (1.0分) 题号:1553 算术运算符 * 与 / 的优先级不同. 答案:N 第2题 (1.0分) 题号:1551 设有数组定义: char a[ ]="abde"; 则数组 a所占的空间为4. 答案:N 第3题 (1.0分) 题号:1577 循环结构中的continue语句是使整个循环终止执行。 答案:N 第4题 (1.0分) 题号:7 在C 语言中,此定义和语句是合法的: enum aa{ a=5,b,c}bb;bb=(enum aa)5; 答案:Y 第5题 (1.0分) 题号:13 char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。 答案:N 第6题 (1.0分) 题号:1573 C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。 答案:Y 第7题 (1.0分) 题号:1095 函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5. 答案:N 第8题 (1.0分) 题号:1555 若a为一维数组名,则*(a+i)表示数组元素a[i]. 答案:Y 第9题 (1.0分) 题号:1113 如果被调用函数的定义出现在主调函数之前,可以不必加以声明. 答案:Y 第10题 (1.0分) 题号:26 int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列 的元素赋初值,其余元素值为0。 答案:Y ━━━━━━━━━━━━━━━━━ 三、单项选择 共15题 (共计30分) ━━━━━━━━━━━━━━━━━ 第1题 (2.0分) 题号:4587 要使以下程序段输出10个整数,请填入一个整数. for(i=0;i<=___;printf("%d\n",i+=2)); A:17 B:18 C:20 D:21 答案:B 第2题 (2.0分) 题号:4611 已有定义int x; f1oat y;且执行scanf("%d,%f",&x,&y);语句, 若从第一列开始输入数据123,45.678(回车),则x 的值为()。 A:12345 B:123 C:45 D:345 答案:B 第3题 (2.0分) 题号:568 一个C语言程序是由()。 A:一个主程序和若干子程序组成 B:函数组成 C:若干过程组成 D:若干子程序组成 答案:B 第4题 (2.0分) 题号:4579 以下对一维数组a的正确说明是: A:char a(10); B:int a[]; C:int k=5,a[k]; D:char a[3]={'a','b','c'}; 答案:D 第5题 (2.0分) 题号:98 以下标识符中,不能作为合法的C用户定义标识符的是()。 A:For B:Printf C:WORD D:sizeof 答案:D 第6题 (2.0分) 题号:517 若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是()。 A:gets(a); B:scanf("%s",a); C:for(i=0;i<10;i++)a[i]=getchar(); D:a=getchar(); 答案:D 第7题 (2.0分) 题号:208 下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是()。 A:8 B:23 C:17 D:6 答案:B 第8题 (2.0分) 题号:4557 设 float a=2, b=4, c=3;,以下 C 语言表达式与代数式 (a+b)c/2 计算结果不一致的是( ) A:(a+b)*c/2 B:(1/2)*(a+b)*c C:(a+b)*c*1/2 D:c/2.0*(a+b) 答案:B 第9题 (2.0分) 题号:170 关于return语句,下列正确的说法是()。 A:不能在主函数中出现且在其他函数中均可出现 B:必须在每个函数中出现 C:可以在同一个函数中出现多次 D:只能在除主函数之外的函数中出现一次 答案:C 第10题 (2.0分) 题号:711 下列选项中正确的语句组是()。 A:char s[8]; s={"Beijing"}; B:char *s; s={"Beijing"}; C:char s[8]; s="Beijing"; D:char *s; s="Beijing"; 答案:D 第11题 (2.0分) 题号:712 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是()。 A:p=q; B:*p=*q; C:n=*q; D:p=n; 答案:D 第12题 (2.0分) 题号:178 以下对C语言函数的描述中,正确的是()。 A:C程序必须由一个或一个以上的函数组成 B:C函数既可以嵌套定义又可以递归调用 C:函数必须有返回值,否则不能使用函数 D:C程序中有调用关系的所有函数必须放在同一个程序文件中 答案:A 第13题 (2.0分) 题号:540 指针变量p进行自加运算(即 执行p++;)后,地址偏移值为2,则其 数据类型为()。 A:int B:float C:double D:char 答案:A 第14题 (2.0分) 题号:671 C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是()。 A:地址传递 B:单向值传递 C:由实参传给形参,再由形参传回给实参 D:由用户指定的传递方式 答案:B 第15题 (2.0分) 题号:147 执行下列语句后,a和b的值分别为()。 int a,b; a=1+'a'; b=2+7%-4-'A'; A:-63,-64 B:98,-60 C:1,-60 D:79,78 答案:B ━━━━━━━━━━━━━━━━ 四、程序填空 共2题 (共计20分) ━━━━━━━━━━━━━━━━ 第1题 (10.0分) 题号:443 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:企业发放的奖金根据利润提成。利润(i)低于或等于10万元 时,奖金可提10%;利润高于10万元,低于20万元时,低于 10万元的部分按10%提成,高于10万元的部分,可可提成7.5% ;20万到40万之间时,高于20万元的部分,可提成5%;40万 到60万之间时高于40万元的部分,可提成3%;60万到100万 之间时,高于60万元的部分,可提成1.5%,高于100万元时, 超过100万元的部分按1%提成,从键盘输入当月利润i,求 应发放奖金总数? -------------------------------------------------------*/ #include main() { long int i; double bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; /***********SPACE***********/ else if(【?】) bonus=bonus1+(i-100000)*0.075; /***********SPACE***********/ else if(【?】) bonus=bonus2+(i-200000)*0.05; /***********SPACE***********/ else if(【?】) bonus=bonus4+(i-400000)*0.03; else if(i<=1000000) bonus=bonus6+(i-600000)*0.015; else bonus=bonus10+(i-1000000)*0.01; /***********SPACE***********/ 【?】("bonus=%d",bonus); } 答案: =======(答案1)======= i<=200000 =========或========= 200000>=i =======(答案2)======= i<=600000 =========或========= 600000>=i =======(答案3)======= i<=1000000 =========或========= 1000000>=i =======(答案4)======= printf 第2题 (10.0分) 题号:18 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:将一个数组中的元素按逆序存放。 -------------------------------------------------------*/ #include #define N 7 main () { static int a[N]={12,9,16,5,7,2,1},k,s; printf("\n the origanal array:\n"); for (k=0;k #include #include void fun (char *s) { /***********FOUND***********/ while(*s!="\\0") { if(*s>='A' && *s <= 'Z' || *s >= 'a' && *s<='z') { if(*s=='Z') *s='A'; else if(*s=='z') *s='a'; else /***********FOUND***********/ s += 1; } /***********FOUND***********/ s++ } } main() { char s[80]; printf("\n Enter a string with length < 80. :\n\n "); gets(s); printf("\n The string : \n\n "); puts(s); fun ( s ); printf ("\n\n The Cords :\n\n "); puts(s); } 答案: =======(答案1)======= while(*s!='\0') =======(答案2)======= *s += 1; =======(答案3)======= s++; ━━━━━━━━━━━━━━━━ 六、程序设计 共1题 (共计10分) ━━━━━━━━━━━━━━━━ 第1题 (10.0分) 题号:514 /*------------------------------------------------------- 【程序设计】 --------------------------------------------------------- 题目:从键盘输入实数x,按照如图片所示的公式计算并输出y值: -------------------------------------------------------*/ #include #include main() { double x,y; /**********Program**********/ /********** End **********/ printf("y=%f\n",y); } 答案: scanf("%f",&x); if(x>7) y=2+sqrt(x); else if(x>=-7) y=5+3*x; else y=3*x*x;