《《C语言程序设计》课程期末考试试题(B卷).docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》课程期末考试试题(B卷).docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计课程期末考试试题(B卷)一、选择题(共30分,每小题1分)1若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值_。A非零值 BNULL CEOF D-1设“int a=2; ”,则表达式“(a+*1/3)”的值是_。A0B1C2D3 3设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确 执行的语句是_ AP2=k; BP1=P2; Ck=*P1+*P2; Dk=*P1*(*P2);以下选项中,不合法的赋值语句是_。Ac=(a=1,b=2);Bk=i=j;Ca=b+c=5;Dn1=(n2=(n3=0);5下面程序的输出
2、结果是_。main() int x=10,y=3,z; printf( %dn ,z=( x%y,x/y);A1B0C4D36下面程序的输出结果是_。main() int x=y=10; printf( %d %dn ,x-,-y);A10 10B9 9C9 10D10 97设a=1,b=2,c=3,d=4则表达式ab?b:c0)|(E0)C(E=0)D(E!=0)11若x是int型变量,则执行以下语句的结果是_。for(x=1; ;x+) if(x%2= =0) if(x%3= =0) if(x%5= =0) printf(%d ,x); break; A30B30 60 90C不输出任何内
3、容D死循环12C语言中while和do-while循环的主要区别为_。Ado-while的循环体至少无条件执行一次Bwhile的循环控制条件比do-while的循环控制条件严格Cdo-while允许从外部转到循环体内Ddo-while的循环体不能是复合语句13假设有两个字符数组a80,b80,则正确的输出语句是_。Aputs(a,b);Bprintf(%s %s,a,b);Cputchar(a,b);Dputs(a); puts(b);14以下能对二维数组a进行初始化的语句是_。Aint a2=1,0,1,5,2,3;Bint a3=1,2,3,4,5,6;Cint a24=1,2,3,4,5
4、,6;Dint a3=1,0,1,1,1;15定义变量和数组“int k; int a33=1,2,3,4,5,6,7,8,9;”,则下面语句结果是_。for(k=0;k3;k+) printf(%d ,ak2-k);A3 5 7B3 6 9C1 5 9D1 4 716若有以下定义和语句:int u=010,v=0x10,w=10;printf(%d,%d,%dn,u,v,w);则输出结果是:_。A8,10,10 B2,10,16 C8,16,10 D10,10,1017下面对C语言字符数组的描述中错误的是_。A字符数组可以存放字符串B字符数组中的字符串可以整体输出、输入C可以在赋值语句中通过
5、赋值运算符“=”对字符数组整体赋值D不可以用关系运算符读字符数组中的字符串进行比较18凡是函数中未指定存储类别的局部变量,其隐含的存储类别为_。A自动(auto)B静态(static)C外部(extern)D寄存器(register)19若调用一个函数,且此函数中没有return语句,则该函数 _。A没有返回值B返回若干个系统默认值C能返回一个用户所希望的返回值D返回一个不确定的值20C语言规定,函数返回值的类型由_。Areturn语句中的表达式类型所决定B调用该函数时的主调函数类型所决定C调用该函数时系统临时决定D在定义函数时所制定的函数类型所决定21以下正确的描述是_。A函数的定义可以嵌套
6、,但函数的调用不可以嵌套B函数的定义不可以嵌套,但函数的调用可以嵌套C函数的定义和函数的调用均不可以嵌套D函数的定义和函数的调用均可以嵌套22以下叙述中不正确的是_。A预处理命令行必须以#号开始 B在程序中凡是以#号开始的语句行都是预处理命令行 CC程序在执行过程中对预处理命令行进行处理D以下是正确的宏定义: #define IBM_PC 23设“char b5,*p=b;”,则正确的赋值语句是_。Ab=abcd;B*b=abcd;Cp=abcd;D*p=abcd;24以下选项中,对指针变量p正确的操作是_。Aint a6,*p; p=&a;Bint a6,*p; p=a;Cint a6; i
7、nt *p=a=1000;Dint a6; int *p1,*p2=a; *p1=*p2;25若“int a410,*p,*q4;”,且0=iday引用结构体成员a.day。 ( ) structint day;char mouth;int year;a,*b; b=&a; A、正确B、错误4用C语言表示条件:10x10 & x100。 ( ) A、正确B、错误5若有如下变量定义:int array10; int *p; 则语句p=&array0;与语句p=array;是等价的。( ) A、正确B、错误6在C语言中,语句int *p 和语句int p;是等价的。( )A、正确B、错误7若定义数
8、组char str20;则可以通过赋值语句str=“I love China!”; 给str赋初始值为“I love China!”。 ( )A、正确B、错误8定义变量int i, *p;语句p=&i; 使得p指向i。( ) A、正确B、错误9有如下结构体定义:struct student int num; char name20; char sex; int age; float score; char addr30; stu1; 则通过语句scanf(“%d%s%c%d%f%s”,stu1);可以使结构体变量stu1的各个成员得到初始值。A、正确B、错误10定义变量int i,*q, *p
9、;语句q=&i; p=&q;使得q指向i。( ) A、正确B、错误11在C语言中,对文件读/写之前,该文件必须已经存在,否则会出错。A、正确B、错误三、程序填空题(每空2分,共20分)1、利用函数f1来求变量的相反数。#include void f1 ( int *p ) *p=-*p; main ( ) int a; scanf(“%d”,&a); f1 ( );printf (%dn, a);2、以下程序表示:求矩阵a,b的和,结果存入矩阵c中并按矩阵形式输出,请填空。#include main() int a32=2,-1,-4,0,3,1; int b22=7,-9,-8,10;int
10、 i,j,k,s,c32; for(i=0;i3;i+)for(j=0;j2;j+) cij= ;for(i=0;i3;i+) for(j=0;j2;j+) printf(%d, ); ;3、以下程序表示:从键盘输入字符,逐个存到磁盘文件中,直到输入#“为止#include main() FILE *fp; char ch, filename10; scanf(“%s”, ); if(fp=fopen(filename, )=NULL) printf(cannot open filen); exit(0); printf(Please input string:); ch=getchar();
11、 ch=getchar(); while(ch!=#) fputc(ch,fp); putchar(ch); ch=getchar(); ;4、以下程序表示:简单选择法对10个数排序。#include main() int a11,i,j,k,x; printf(Input 10 numbers:n); for(i=1;i11;i+) scanf(%d,&ai); printf(n); for(i=1;i10;i+) ; for(j=i+1;j=10;j+) if(ajak) k=j; if(i!=k) x=ai; ; ; printf(The sorted numbers:n); for(i
12、=1;i11;i+) printf(%d ,ai);四、编程题:(共30分)1、 1、 编程求1100所有整数的和,文件名为bcb1.cpp (10分)2、 2、 编写一个求Fibonacci数列第i项数值的函数fab(int i),并在主函数调用该函数按下面格式输出前20项数值。文件名为bcb2.cpp(20分)1123581321345589144233258461098715971771141816765 C语言程序设计 课程期末考试参考答案(B卷)一、单选题(共39分,每小题1.5分。)12345678910AAACDDCBBC11121314151617181920AADBACCAD
13、D212223242526BCCBCD二、判断题 (共11分,每题1分。)123456BBAAAB7891011BBBAB三、填空题 (共20分,每题2分。): &a : aij+bij : cij : printf(n) : filename : w : fclose(fp) : k=i : ai=ak : ak=x 四、编程题 (共3分,第1小题10分,第2小题20分。)1参考程序如下:#include main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d,sum);2参考程序如下:#includemain() long int fab(int n); int i; for(i=1;i=20;i+) printf(%10ld,fab(i); if(i%4=0) printf(n); printf(n);long int fab(int n) long int sum; if(n=1|n=2) sum=1; else sum=f(n-1)+f(n-2); return(sum);
限制150内