《《C语言程序设计》课程期末考试试题(B卷).pdf》由会员分享,可在线阅读,更多相关《《C语言程序设计》课程期末考试试题(B卷).pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 语言程序设计课程期末考试试题(B 卷)一、选择题一、选择题(共 30 分,每小题 1 分)1若 fp 是指向某文件的指针,且已读到该文件的末尾,则 C 语言函数 feof(fp)的返回值_。A非零值 BNULL CEOF D-1设“int a=2;”,则表达式“(a+*1/3)”的值是_。A01C2D3 3设 P1 和 P2 是指向同一个 int 型一维数组的指针变量,k 为 int 型变量,则不能正确 执行的语句是_ AP2=k;BP1=P2;Ck=*P1+*P2;Dk=*P1*(*P2);以下选项中,不合法的赋值语句是_。Ac=(a=1,b=2);k=i=jCa=b+c=5;Dn1=(
2、n2=(n3=0);5下面程序的输出结果是_。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;A3030 60 90C不输出任何内
3、容D死循环12C 语言中 while 和 do-while 循环的主要区别为_。Ado-while 的循环体至少无条件执行一次Bwhile 的循环控制条件比 do-while 的循环控制条件严格Cdo-while 允许从外部转到循环体内Ddo-while 的循环体不能是复合语句13假设有两个字符数组 a80,b80,则正确的输出语句是_。Aputs(a,b);printf(%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 a2
4、4=1,2,3,4,5,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 73 6 9C1 5 9D1 4 716若有以下定义和语句:int u=010,v=0 x10,w=10;printf(%d,%d,%dn,u,v,w);则输出结果是:_。A8,10,10 B2,10,16 C8,16,10 D10,10,10 17下面对 C 语言字符数组的描述中错误的是_。A字符数组可以存放字符串B字符数组中的字符串可以整体输出、输
5、入C可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D不可以用关系运算符读字符数组中的字符串进行比较18凡是函数中未指定存储类别的局部变量,其隐含的存储类别为_。A自动(auto)静态(static)C外部(extern)D寄存器(register)19若调用一个函数,且此函数中没有 return 语句,则该函数 _。A没有返回值返回若干个系统默认值C能返回一个用户所希望的返回值D返回一个不确定的值20C 语言规定,函数返回值的类型由_。Areturn 语句中的表达式类型所决定B调用该函数时的主调函数类型所决定C调用该函数时系统临时决定D在定义函数时所制定的函数类型所决定21以下正确的描
6、述是_。A函数的定义可以嵌套,但函数的调用不可以嵌套函数的定义不可以嵌套,但函数的调用可以嵌套C函数的定义和函数的调用均不可以嵌套D函数的定义和函数的调用均可以嵌套 22以下叙述中不正确的是_。A预处理命令行必须以#号开始 在程序中凡是以#号开始的语句行都是预处理命令行 CC 程序在执行过程中对预处理命令行进行处理D以下是正确的宏定义:#define IBM_PC 23设“char b5,*p=b;”,则正确的赋值语句是_。Ab=abcd;*b=abcd;Cp=abcd;D*p=abcd;24以下选项中,对指针变量 p 正确的操作是_。Aint a6,*p;p=&a;int a6,*p;p=a
7、;Cint a6;int*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 语言表示条件:10 x10&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
10、,-8,10;int 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();ch=getchar
11、();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=1;i11;i+)printf(%d,ai);四、编程题:(共四
12、、编程题:(共 30 分)分)1、1、编程求 1100 所有整数的和,文件名为 bcb1.cpp(10 分)2、2、编写一个求 Fibonacci 数列第 i 项数值的函数 fab(int i),并在主函数调用该函数按下面格式输出前 20 项数值。文件名为 bcb2.cpp(20 分)1123581321345589144233258461098715971771141816765 C 语言程序设计 课程期末考试参考答案(B 卷)一、单选题一、单选题(共 39 分,每小题 1.5 分。)12345678910AAACDDCBBC11121314151617181920AADBACCADD212
13、223242526 BCCBCD 二、判断题二、判断题(共 11 分,每题 1 分。)123456BBAAAB7891011 BBBAB 三、填空题三、填空题(共 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内