C语言考试试卷及答案
- 格式:doc
- 大小:57.00 KB
- 文档页数:7
C语言程序设计考试试卷(附答案)计算机程序设计课程56 学时 3.5 学分考试形式:闭卷一、选择题(15小题,每小题2分,共计30分)1.下面不正确的字符串常量是 A 。
A)'abc' B)"12'12" C)"0" D)" "2.以下正确的叙述是 DA)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误(精确)地表示D)在C程序中,%是只能用于整数运算的运算符3.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为 AA)D B)68 C)不确定的值 D)C4.sizeof(float)是 B :A)一个双精度型表达式 B)一个整型表达式C)一种函数调用 D)一个不合法的表达式5.以下说法正确的是 D :A)输入项可以为一实型常量,如scanf("%f",3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);6.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是 D (注:<CR>表示回车)。
int a1,a2; char c1,c2;scanf("%d%d",&a1,&a2); scanf("%c%c",&c1,&c2);A) 1020AB<CR> B)10 20<CR>AB<CR>C)10 20 AB<CR> D)10 20AB<CR>7.请阅读以下程序:void main(){int a=5,b=0,c=0;if(a=b+c) printf("***\n");e1se printf("$$$\n");以上程序 D :A)有语法错不能通过编译 B)可以通过编译但不能通过连接C)输出*** D)输出$$$8.下面程序段的运行结果是 C 。
一、选择题。
(每空2分,共计40分)本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷第一部分:基础知识(20项,共40分)1.一个C语言程序是由(C )组成的。
A.主程序B.子程序C.函数D.过程2.转换说明符%x的输出形式是(C )。
A.十进制B.八进制C.十六进制D.二进制3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b)printf ( “------------“) ;的正确说法是(C )。
A.循环体只执行一次B.死循环C.循环体一次也不执行D.输出----------- 4.若x、y、z均为int 型变量,则执行下列语句后的z值为( A )。
x=1; y=2; z=3; z=(x>y)?z :y ; z = (z<y)?z:x;A.1 B.4 C.2 D.35.下面标识符中,合法的用户标识符为(D )。
A.P#Ad B.12a C.char D._int6.‘A’+ 3 的结果是( B )。
A.’A’B.’D’的ASCⅡ码C.65 D.3 7.语句char str[20];说明str是一个字符串,最多能表示( B )。
A.20个字符B.19个字符C.18个字符D.21个字符8.将int 型变量n转换成float型变量的方法是( B )。
A.float n B.(float)n C.float(n) D.21个字符9.以下不正确的描述是( C )。
A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B.while循环是先判断表达式后执行循环体语句C.do-while和for循环均是先执行循环体语句,后判断表达式D.for、while、do-while循环中的循环体均可以由空语句构成10.在循环中使用break 语句的功能是( A )。
A.使程序的执行跳出break所在的那一重循环B.使程序执行结束C.跳出包含此break语句的所有循环D.终止本次循环,继续下次循环11.下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是(C )。
(完整版)C语言试卷及答案一、选择题(每题2分,共40分)1、C语言源程序的基本单位是( )A.程序行B.语句C.函数D.字符2、C语言规定:在一个源程序中,main函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后3、在下列字符列中,合法的标识符是( )A.p12&.aB.stud_100C. water$12D.88sum4、在C语言中,要求运算的数必须是整数的运算符是()A./B.!C.%D.= =5、设有语句 int a =3;则执行了语句a + = a - = a*a;后,变量a 的值是()A、3B、0C、9D、-126、设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a > b)&&(n=c>d)后n的值为()A、1B、2C、3D、47、执行下列程序时输入:1234567,程序的运行结果是()main(){int x,y;scanf(“%2d%*2c%1d”,&x,&y);printf(“%d\n”,x+y);}A.17B.46C.15D.98、下述程序的输出结果是() #includevoid main(){int x=-1,y=4;int k;k=++x<=0&&!(y--<=0);printf("%d,%d,%d",k,x,y);}A.0,0,3B.0,1,2,C.1,0,3,D.1,1,29、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。
A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if10、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()main(){int x;scanf(“%d“,&x);if(x++>5)printf(“%d”,x);else printf(“%d\n”,x--);}A.7和5B.6和3C.7和4D.6和411、若变量c为char类型,能正确判断出c为小写字母的表达式是( )A. 'a'<=c<= 'z'B. (c>= 'a')||(c<= 'z')C. ('a'<=c)and ('z'>=c)D. (c>= 'a')&&(c<= 'z')12、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是。
C语言程序设计考试试卷(附答案)C语言程序设计考试试卷(附答案)第一部分:选择题(共40题,每题2分,总分80分)1. 下列哪个关键字用于定义常量?A. constB. intC. staticD. volatile2. 在C语言中,以下哪个运算符用于将一个整数转换为浮点数?A. *B. /C. %D. +3. 下列代码的输出结果是什么?```c#include <stdio.h>void main() {int x = 2, y = 3;printf("%d", x++ * ++y);}```A. 7B. 8C. 9D. 104. C语言中,以下哪个运算符用于从一个整数中提取指定位数的值?A. <<B. >>C. |D. &5. 下列代码的输出结果是什么?```c#include <stdio.h>void main() {int arr[] = {1, 2, 3, 4, 5};int *ptr = arr + 2;printf("%d", *ptr);}```A. 1B. 2C. 3D. 4......40. 下列关于结构体的说法中,错误的是:A. 结构体可以包含不同类型的成员变量B. 结构体可以作为函数参数和返回值C. 结构体可以使用“->”来访问成员变量D. 结构体可以使用“sizeof()”函数获取其大小第二部分:填空题(共10题,每题4分,总分40分)1. 以下是有效的C语言标识符:___hello___2. 下列代码的运行结果是:___88___```c#include <stdio.h>void main() {int x = 8;printf("%d", x++);}```3. 在C语言中,以下是有效的声明:___int i, *p;___4. 下列代码的输出结果是:___10___```c#include <stdio.h>void main() {int arr[5] = {1, 2, 3, 4, 5};int *ptr = arr + 2;printf("%d", *(ptr + 2));}```5. 在C语言中,以下是合法的函数声明:___void fun(int x, float y);___......第三部分:编程题(共3题,每题20分,总分60分)1. 编写一个函数,接受一个整型数组和数组的长度作为参数,返回数组中的最大值。
一、单项选择题(每小题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语言代码段的输出结果是()。
C语言程序设计一、单项选择题1.以下叙述不正确的是______。
A)一个C源程序可由一个或多个函数组成B)一个C源程序一行内可以写多条语句C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面2.以下正确的C语言标识符是 __ ____。
A)%x B)a+b C)a123; D)test!3.以下对’\t’描述正确的是______。
A) ’\t’是两个字符B) ’\t’是一个字符C) ’\t’是一个字符串D)以上都不是4.C语言中的简单数据类型有______。
A)整型、实型、逻辑型B) 整型、字符实型、逻辑型C)整型、实型、字符型D) 整型、实型、字符型、逻辑型5.在C语言中,数字029是一个______。
A)八进制数B)十六进制数C)十进制数D)以上都不是6.以下选项中,当为x大于的奇数时,值为0的表达式是______。
A)x%2==0 B) x%2==1 C)x/2 D) x%2!=0 7.已知char c=’d’;,则printf(“%c”,’A’+(‘e’-c));的输出结果是______。
A)a B)e C)B D)D8.已知int a=1,b=3,t; ,若要将a和b变量中的数据进行交换,则下面正确的是______。
A)a=b; b=a; B)a=t; t=b; b=a;C)t=a; a=b; b=t; D)t=a; b=t; b=a;9.已知int a=2,b; ,则执行语句b=1.0/a;后,b的值是__ ____。
A)0.5 B)0 C)1 D)210.已知int i=1,j;,则执行语句j=i++;后,j的值是______。
A)1 B)2 C)-2 D)-111.已知int x=2,y=1,z;,则执行语句z=!x && --y;后,y的值是______。
A)0 B)1 C)2 D)-112.执行以下程序段后,输出结果是______。
int x=10;x+=(x=8);printf(“%d\n”,x);A)10 B)8 C)18 D)1613.已知int b; char s[8];,则正确的输入语句是______。
复习题(一)1。
用高级语言编写的源程序必须通过___________程序翻译成二进制程序才能执行,这个二进制程序称为____________程序。
【答案】编译目标2。
下列符号串中,属于C语言合法标识符的是()①else ②a-2 ③_00 ④00【答案】③3.下列说法中,正确的是()①主函数名是由程序设计人员按照“标识符”的规则选取的②分号和回车符号都可以作为一个语句的结束符号③在程序清单的任何地方都可以插入一个或多个空格符号④程序的执行,总是从源程序清单的第1行开始【答案】③4.-12345E-3代表的十进制实数是________________________.【答案】—12.3455.设字符型变量ch中存放字符“A”,则执行“ch+++2”后,ch中的字符是________。
【答案】B6.设字符型变量ch1中存放的字符是“A",字符型变量ch2中存放的字符是“B”,则执行“!(ch1=’B')&&(ch2='C')”的运算后,变量ch2中的字符是_____________.【答案】B6-1.设整型变量m,n,a,b,c,d均为1,执行“(m=a〉b)&&(n=a>b)”后m,n 的值是()①0,0 ②0,l ③1,0 ④1 ,l【答案】②。
7.设整型变量x1和x2的值均为10,则表达式“x1/=x2-4”的值是_______________. 【答案】l8.在C语言中,如果某个关系表达式成立(真),则该关系表达式的值是____;如果某个逻辑表达式为假,则该逻辑表达式的值是_________.【答案】1 09.设有整型变量x,如果表达式“!x”值为0,则x的值为_________;如果表达式“!x"值为1,则x的值为___________。
【答案】非010.下列表达式中,不属于逗号表达式的是()①a=b,c ②a,b=c ③a=(b,c) ④a,(b=c)【答案】③11.在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构【答案】多分支12.在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。
一、选择填空:(每题1.5分,共15分)1.以下可以正确表示字符型常数的是。
(A) “a”(B) ‘297’ (C) ‘\t’ (D)“\n”2. typedef struct{ char name[10];int age;char interests[20];} student;以上语句中 student 是:(A)结构体变量,有存储空间 (B)结构体数据类型,无存储空间(C)结构体变量,无存储空间 (D)结构体数据类型,有存储空间3.函数:void f(void){int i = 12, j;for(j=0; j<20; j++)i++;}当f执行完退出后,i的值为_____ _____(A) 12 (B) 32 (C) 29 (D) 无定义4.若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是(A)*p+6 (B)*(p+6) (C)*p+=5(D)p+55.以下代码执行后,result的值为:#define FIVE 2+3result = FIVE * FIVE(A) 11 (B) 13 (C) 25 (D)106.已知函数定义的形式如下:struct data *f(void){……}则函数f:(A) 没有参数,返回值是一个结构体(B)有一个参数void, 返回值是一个结构体(C)没有参数,返回值是一个结构体指针(D)有一个参数void, 返回值是一个结构体指针7.下列说法中,不正确的是_ ____(A)函数中可以没有return语句。
(B)所有的函数都不能嵌套定义,但可以相互调用。
(C)函数的实参应与其对应的形式参数类型一致。
(D)函数可以不加函数返回值类型标识符。
8.一个C程序的执行是。
(A)从本程序的main函数开始,到main函数结束(B)从本程序文件的第一个函数开始,到本程序文件最后一个函数结束(C)从本程序的main函数开始,到本程序文件的最后一个函数结束(D)从本程序文件的第一个函数开始,到本程序的main函数结束9.在C语言的算术运算符中只能用于整型数的运算符是(A)* (B)/ (C)++ (D)%10 在下列选项中,没有构成死循环的程序段是(A)int i=100;while (1) {i=i%100+1;if(i>=100) break;}(B)for(;;);(C)int k=1000;do{++k;} while (k>=1000);(D)int s=36while(s); --s;二、写出下列程序的运行结果:(共35分)1.(8分)int funa(int *a) { a[0] ++; }int funb(int b[]) { b[1] += 5; }main(){int a[5] = {2,3,4,5,6};int b[5] = {2,3,4,5,6};int *p, i;p = &a[0];(*p)++;funb(p);for(i = 0; i <5; i++)printf("%d,",a[i]);p = &b[1];funa(p);funb(p);for(i = 0; i < 5; i++)printf("%d,",b[i]);}运行结果:2、(6分)main(){char a[]="programming", b[]="language";char *p1,*p2;int i;p1=a; p2=b;for(i=0; *(p1+i)!=’\0’&&*(p2+i)!=’\0’;i++)if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i)); }运行结果是:3、(8分)int f(int n){if (n==1){return 1;}else{return 2 * f(n/2);}}运行结果: f(20)的值是多少?4、(6分)void change (int *a, int *b){int x =* a;*a = *b; *b = x;printf(“%d %d “, *a, *b)';}void main(){int x=10,y=25;change (&x, &y);printf(“%d %d “, x, y)';}运行结果:5、(5分)已知字母A的ASCII码为十进制的65,下面程序的输出是void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}答案三、程序填空(每空2分,共38分)1、下面是一个求数组元素之和的程序。
一、单项选择题(请将答案填在下面表格中20×1)1.以下叙述中正确的是()。
A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,具有其他语言的一切优点2.以下叙述中正确的是()。
A.构成C程序的基本单位是函数B.可在一个函数中定义另一个函数C.main函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义3.以下叙述中正确的是()。
A.C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分4.以下有关for循环的正确描述是()。
A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5.对下面程序段的描述,正确的是()。
x=-1;do{x=x*x;}while(!x);A.是死循环B.循环执行一次C.循环执行两次D.有语法错误6.以下有关C语言数组说法正确的是()。
A.数组元素的数据类型可以不一致B.数组元素的个数可以不确定,允许随机变动C.可以使用动态内存分配技术,定义元素个数可变的数组D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数7.以下数组定义正确的是()。
A.inta(20);B.inta[]={1,2,5,7,0};C.inta[n];D.inta[2]={1,2,4,6};8.在定义intb[2][10];之后,对b数组元素引用正确的是()。
A.b[0][9]B.b[2,3]C.b(1)(5)D.b[10][0]9.如有定义语句intc[]={1,5,3,4,6,7,0};,则数组c有()个元素。
2011-2012学年第一学期C语言程序设计A 课程A卷考试题共 4 页此第 1 页成绩一、单项选择题(每小题2分,共40分)1. C语言中合法的字符常量是()A.nB.’\n’C.110D.”n”2. 有以下程序:main( ){ char ch=’A’;printf(“ch(1)=%d,ch(2)=%c\n”,ch,ch+1); }程序运行后的输出结果是()A. ch(1)=65,ch(2)=AB. ch(1)=97,ch(2)=AC. ch(1)=65,ch(2)=BD. ch(1)=97,ch(2)=B3. 能表示a不能被2整除且a、b不相等,但a、b的和等于0的C语言逻辑表达式是()A. a==-b&&a%2==0B. a!=b&&a+b==0&&a%2C. !(a%2)&&a==-bD.a%2==0&&a+b==04. 以下程序段中语句” printf("i=%d,j=%d\n",i,j);”的执行次数是()int i, j;for(i=3;i ;i--)for(j=1;j<5;j++) printf("i=%d,j=%d\n",i,j);A. 12B. 20C. 15D. 245. 执行以下程序段后,x[2]的值是()int x[10]={1,2,3,4,5,6,7,8,9,10},i,j,t;i=0;j=9;while(i<j){ t=x[i]; x[i]=x[j]; x[j]=t;i++; j--; }A. 8B. 2C. 3D. 96. 判断字符串”abcd”和”ab cd”是否相等,应使用的语句是()A. if (“abcd”==”ab cd”)B. if (abcd==ab cd)C. if (strcmp(“abcd”,”ab cd”))D. if (strcmp(abcd,ab cd))7. 若有定义“int *p,*q,a=2,b;”,则以下正确的赋值语句组是()A. p=&a; *q=*p;B. *p=a;*q=b;C. p=&a;q=&b;*p=*q;D. p=&a;q=&b;*q=*p;8.以下说法错误的是()A. C程序中可以只包含一个main函数B. C程序由一个main函数和若干个其他函数构成C. C程序中可以没有main函数,但至少应包含一个其他函数D. C程序由函数组成,函数是构成程序的基本单位9. 以下选项中,能用作用户标识符的是()A. voidB. 8_8C. _0_D. unsigned10. 表达式:(int)((double)9/2)-(9)%2的值是()A. 0B. 3C. 4D. 511. 有以下程序:#include <stdio.h>void main(){ int a,b,c=200;a=c/10%9;b=!a||(a-2);printf("%d,%d\n",a,b); }程序运行后的输出结果是()A. 0,1B. 2,1C. 0,0D. 2,012. “==”代表C语言中的()A. 条件运算符B. 逻辑运算符C. 关系运算符D. 赋值运算符13. .若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()A. 1B. 0C. 2D. 不知道a的值,不能确定14. 有以下程序:#include <stdio.h>void main(){ int a=12,b=20,t=18;if(a>b)t=a;a=b;b=t;printf("a=%d,b=%d,t=%d\n",a,b,t); }程序运行后的输出结果是()A. a=12,b=20,t=18B. a=20,b=18,t=18C. a=20,b=12,t=12D. a=20,b=18,t=1215. 执行以下程序后的输出是()#include <stdio.h>void main(){ int x,y;for(x=1,y=1;x<=20;x++){ if(y>=20) break;if(y%5==1){ y=y+5; continue; }y=y-1;}printf("x=%d,y=%d\n",x,y); }A. x=5,y=21B. x=4,y=21C. x=5,y=20D. x=4,y=2016. 凡是函数中未指定存储类别的局部变量其隐含的存储类别是()。
A. 自动(auto)B. 静态(static)C. 外部(extern)D. 寄存器(register)17. C语言中用于结构化程序设计的三种基本结构是()A.. 顺序结构、选择结构、循环结构B. if、switch、breakC. for、while、do-whileD. if、for、continue18. 在while(x)语句中的x与下面条件表达式等价的是:()A. x!=0B. x==1C. x!=1D. x==019. 若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为()A. *(a+j*n+i)B. *(a+i*n+j)C. *(*(a+i)+j)D. *(*a+i)+j20. 若有以下调用语句,则不正确的fun函数的函数原型是()void main(){ …int a[50],n;…fun(n, &a[9]);…}A. void fun(int m, int x[]);B. void fun(int s, int h[41]);C. void fun(int p, int *s);D. void fun(int n, int a);二、程序填空(每空2.5分,共20分)1. 下面程序的功能是将一字符串中的小写英文字母全部改成大写形式,然后输出。
请在横线上填上适当的程序代码,使它能输出正确的结果#include <stdio.h>void main (){ int i=0;char str[80];scanf("%s",str);while( ①){ if( ②) str[i]=str[i]-32;③}printf("%s\n",str);}2. 以下程序的功能是计算1!+2!+3!+…20!的值,请填空#include <stdio.h>long fun(int t){ long a=1;int n;for( n=1; ④n++) ⑤return a; }void main (){int n;long sum=0,s;for(n=1;n<=20;n++){ s=fun(n); ⑥}printf("sum=%ld\n",sum);}3. 以下程序的功能是用“辗转相除法”求两个正整数的最大公约数,请填空#include <stdio.h>void main(){ int r,a,b;scanf("%d%d",&a,&b);if(a<b){ ⑦}r=a%b;while(r!=0){ a=b;b=r; ⑧}printf("%d\n",b);}三、分析程序题(每空4分,共20分)1. 以下程序运行后的输出结果是①#include <stdio.h>void main (){ int t;for(t=1; t<=100; t++){ printf("%d ",t); if(t%2==1 && t%5==3) break; } }2. 以下程序的功能是②#include <stdio.h>void main(){ int n,s=0;scanf("%d",&n);while(n){ s++;n=n/10;}printf("%d",s);}3. 以下程序运行后,若输入5 5<回车>,则程序的输出结果是③#include <stdio.h>void main(){ int a,b;scanf("%d%d",&a,&b);if (a>6)if(a<10) a++;else a--;if (b>6){ if(b<10) b++; }else b--;printf("a=%d,b=%d\n",a,b);}4. 以下程序运行后的输出结果是④#include <stdio.h>void main(){ int a[10]={1,2,3,4,5,6,7,8,9,10};int i,*p,s=0;p=&a[0];for(i=0;i<10;i++)if((*(p+i))%3==0)s=s+*(p+i);printf("%d\n",s);}5. 以下程序运行后的输出结果是⑤#include <stdio.h>void main(){ int a[5]={1},i;for(i=1;i<5;i=i+2)a[i]=2*i;f or(i=0;i<5;i++)printf("%d ",a[i]);}四、程序设计(共20分)1. 请编写程序,输出1~1000之间能被11整除且个位数为5的所有整数,要求每个输出值之间有空格,输出结果后光标显示在下一行。
2. 利用递归函数计算Fibonacci数列的第n个数。
要求设计递归函数,在主函数main()中输入数据n,然后调用fib()函数求得第n个Fibonacci数,并输出结果。
fib(n)的递归公式如下:一、单项选择题(每小题2分,共40分)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15B C B A A C D C C B D C A B A16 17 18 19 20A A A C D二、程序填空(每空2.5分,共20分)1、①str[i]!=’\0’ 、②str[i]>='a'&&str[i]<='z' 、③i++;2、④n<=t; 、⑤a=a*n; 、⑥sum=sum+s;3、⑦r=a; a=b; b=r; 、⑧r=a%b;三、分析程序题(每空4分,共20分)① 1 2 3 、②统计一个正整数的位数、③a=5,b=4 、④18 、⑤ 1 2 0 6 0四、程序设计(共20分)1. 请编写程序,输出1~1000之间能被11整除且个位数为5的所有整数,要求每个输出值之间有空格,输出结果后光标显示在下一行#include <stdio.h> ----------------------- 0.5分void main () ----------------------- 0.5分{ int a; ------------------------- 1分for(a=1;a<=1000;a++) ------------------------- 2分if(a%11==0 &&a%10==5) ------------------------- 2分printf("%d ",a); ------------------------- 1分printf("\n"); ------------------------- 1分}2. 利用递归函数计算Fibonacci数列的第n个数。