C语言期末考试题
更新时间:2023-09-11 04:56:01 阅读量: 教育文库 文档下载
1.static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'}; 说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存
储方式,其中被初始化的下标变量是()。
A、a[10] B、a[0] C、a[1] D、a[-1]
B
2.对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。
A、将5个初值依次赋给a[1]至a[5] B、将5个初值依次赋给a[6]至a[10]
C、因为数组长度与初值的个数不相同,所以此语句不正确 D、将5个初值依次赋给a[0]至a[4] D
3.在C语言中,能代表逻辑值“真”的是()。
A、大于0的数 B、True C、非0的数 D、非0整数 C
4.以下read函数的调用形式中,参数类型正确的是()。
A、read(int fd,int count,char *buf) B、read(int count,char *buf,int fd) C、read(int *buf,int fd,int count) D、read(int fd,char *buf,int count) D
6.以下不符合C语言语法的赋值语句是()。
A、a=b=5; B、a=1,b=2 C、++j; D、y=(a=3,6*5); B
7.C 语言程序的三种基本结构是顺序结构、选择结构和______结构.
A、递归 B、转移 C、嵌套 D、循环 D
8.选择结构中的条件与循环结构中循环成立的条件, 在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。 哪个数作为逻辑“假”值()。
A、-1 B、非零的数 C、1 D、0 D
9.以下叙述中不正确的是()。
A、在C程序中,赋值运算符的优先级最低 B、在C程序中,j++;是一条赋值语句
C、C程序中的#include和#define均不是C语句 D、一个好的程序应该有详尽的注释 A
10.若有下列定义,则对a数组元素地址的正确引用是()。 int a[5],*p=a;
A、&a B、p+2 C、a++ D、&a[5] B
11.static char str[10]=\数组元素个数为()。
A、5 B、10 C、6 D、9
B
12.以下程序中,c的二进制值是
char a = 3, b = 6, c; c = a ^ b << 2;
A、00011100 B、00010100 C、00011000 D、00011011 D
13.以下程序的输出结果是
func(int a, int b)
{ int c; c = a + b;
return c;
}
main()
{ int x = 6, y = 7, z = 8, r;
r = func((x--, y++, x + y), z--);
printf(“%d\\n”, r);
}
A、21 B、11 C、31 D、20 A
14.以下程序的输出结果是________. void fun(int a, int b, int c) { a=456; b=567; c=678; } main()
{ int x=10, y=20, z=30; fun(x, y, z);
printf(\
A、30,20,10 B、10,20,30 C、678567456 D、456567678 A
15.执行下列程序后,其输出结果是()。 main() {int a=9; a+=a-=a+a; printf(\}
A、18 B、-18 C、-9 D、9 B
16.若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是
A、scanf(%8.4f”, &c); B、scanf(%6.2f”, &c); C、scanf(%f”,c) D、scanf(?”, &c); D
17.下列变量定义中合法的是()。
A、short _a=1-.1e-1; B、long do=0xfdaL; C、double b=1+5e2.5; D、float 2_and=1-e-3; A
18.以下程序的输出结果是
#define FMT “%d,”
main() {
int b[][4] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23}; printf(FMT, *(*(b+1)+1)); printfFMT, b[2][2]); }
A、1,11, B、1,11 C、11,21 D、11,21, D
19.若int a=3,则执行完表达式a-=a+=a*a后,a的值是
A、-15 B、0 C、-9 D、-3 B
20.以下read函数的调用形式中,参数类型正确的是()。
A、read(int fd,int count,char *buf) B、read(int count,char *buf,int fd) C、read(int *buf,int fd,int count) D、read(int fd,char *buf,int count) D
21.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用 八进制表示的字符常量'\\101'是()。
A、字符e B、字符a C、非法的常量 D、字符A D
22.C语言规定,函数返回值的类型是由()。
A、调用该函数时的主调函数类型所决定 B、return语句中的表达式类型所决定 C、调用该函数时系统临时决定
D、在定义该函数时所指定的函数类型所决定 D
23.结构化程序设计所规定的三种基本控制结构是()。
A、树形、网形、环形 B、输入、处理、输出 C、主程序、子程序、函数 D、顺序、选择、循环 D
24.与实际参数为实型数组名相对应的形式参数不可以定义为()。
A、float a; B、float a[]; C、float (*a)[3]; D、float *a; A
25.若有定义和语句:
int a[4][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, (*prt )[3] = a, *p[4], i; for(i = 0; i < 4; i++)
p[i] = a[i];
则不能够正确表示a数组元素的表达式是
A、(*(p+1))[1] B、a[4][3] C、p[0][0] D、prt[2][2] B
26.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else总与( )配对
A、同一行上的if B、其之后最近的if C、其之前最近的未配对的if D、缩排位置相同的if C
27.以下程序的输出结果是 。
typedef union { long i;
int k[5]; char c; } DATE; struct date { int cat; DATE cow; double dog;
} too; DATE max; main() {
printf(“%d\\n”, sizeof(struct date) + sizeof(max) ); }
A、30 B、25 C、18 D、8 A
28.下列程序的输出结果为()。 main() {int m=7,n=4;
float a=38.4,b=6.4,x; x=m/2+n*a/b+1/2; printf(\}
A、28.000000 B、27.500000 C、28.500000 D、27.000000 D
29.有以下程序(提示:程序中fseek(fp, -2L * sizeof(int), SEEK_END);语句的作用是 使位置指针从文件末尾向前移2*sizeof(int)字节)
#include
{ FILE *fp; int i, a[4] = {1, 2, 3, 4}, b; fp = fopen(“data.dat”, “wb”);
for(i = 0; i < 4; i++) fwrite(&a[i], sizeof(int), 1, fp); fclose(fp);
fp = fopen(“data.dat”, “rb”);
fseek(fp, -2L * sizeof(int), SEEK_END);
fread(&b, sizeof(int), 1, fp); /*从文件中读取sizeof(int)字节的数据到变量b中*/ fclose(fp); }
执行后输出结果是
A、3 B、4 C、1 D、2 A
30.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用 5列,如果字符串长度大于5,则输出按方式()。
A、右对齐输出该字串,左补空格 B、从左起输出该字符串,右补空格 C、按原字符长从左向右全部输出 D、输出错误信息 C
1.语句int max(int x,int max(int y, int z));是正确的函数声明语句.
错
2.若有int ⅰ=10, j=0;则执行完语句 if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11。
错误
3.char *p=\的含义是定义字符型指针变量p,p的值是字符串\。 错
4.如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10};
错误
5.如果有一个字符串,其中第十个字符为'\\n',则此字符串的 有效字符为9个。 错误
6.共同体变量所占的内存长度等于最长的成员的长度
正确
7.函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5. 错误
8.#define 和printf 都不是C语句。 正确
9..C语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的。 正确
10.若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义, 所以此宏定义是错误的。 正确
/*------------------------------------------------ 【程序设计】
-------------------------------------------------- 功能:编写函数fun计算下列分段函数的值: x^2+x+6 x<0且x≠-3
f(x)= x^2-5x+6 0≤x<10且x≠2及x≠3
int max(x,y) int x,y; { int z;
if(x>y) z=x; else z=y; return(z); }
A、18 B、27 C、72 D、45 D
25.char *s1=\则()。
A、s2指向不确定的内存单元 B、s1不能再指向其它单元 C、不能访问\、puts(s1);与puts(s2);结果相同 D
26.用户定义的函数不可以调用的函数是()。
A、本文件外的 B、main函数
C、本函数下面定义的 D、非整型返回值的 B
27.以下叙述中正确的是 ()。
A、C语言可以不用编译就能被计算机识别执行 B、C语言出现的最晚,具有其他语言的一切优点 C、C语言比其他语言高级
D、C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D
28.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是()。
A、语法错 B、0 C、1 D、\假\C
29.以下选项中正确的整型常量是
A、4/5 B、5 C、-10 D、1.000 C
在Turbo C中,下面的定义和语句是合法的: file *fp;fp=fopen(\
错误
函数strlen(\的值是7。 错误
若有定义int c;则while(c=getchar());是正确的C语句。
正确
变量根据其作用域的范围可以分作局部变量和全局变量。
正确
一个include 命令可以指定多个被包含的文件。
错误
字符串常量是用一对双引号括起来的字符序列,所以\不是字符串.
错误
若i =3,则printf(\输出的值为 -4。
错误
C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式. 错误
char c[]=\是一个合法的为字符串数组赋值的语句。
错误
若有如下定义和语句 int k=10;while(k=0)k=k-1;则循环体一次也不执行。
正确
/*------------------------------------------------ 【程序设计】
--------------------------------------------------
功能:求一批数中小于平均值的数的个数。
------------------------------------------------*/
#include
int average_num(int a[],int n) {
/**********Begin**********/
/********** End **********/ } main() {
int n,a[100],i,num; scanf(\ for(i=0;i printf(\ bky(); } void bky() { FILE *IN,*OUT; int n; int i[10]; int o; IN=fopen(\ if(IN==NULL) { printf(\ } OUT=fopen(\ if(OUT==NULL) { printf(\ } for(n=0;n<5;n++) { fscanf(IN,\ } o=average_num(i,5); fprintf(OUT,\ fclose(IN); fclose(OUT); } 【参考代码】 int i,sum=0,k=0; double average; for(i=0;i /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:判断一个整数w的各位数字平方之和能否被5整除, 可以被5整除则返回1,否则返回0。 ------------------------------------------------*/ #include int fun(int w) { /**********Begin**********/ /********** End **********/ } main() { int m; printf(\ scanf(\ printf(\ bky(); } void bky() { FILE *IN,*OUT; int c ; int t; int o; IN=fopen(\ if(IN==NULL) { printf(\ } OUT=fopen(\ if(OUT==NULL) { printf(\ } for(c=1;c<=5;c++) { fscanf(IN,\ o=fun(t); fprintf(OUT,\ } fclose(IN); fclose(OUT); } 【参考代码】 int k,s=0; do {s=s+(w)*(w); w=w/10; }while(w!=0); if(s%5==0)k=1; else k=0; return(k); =============== /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:用起泡法对10个整数从小到大排序。 ------------------------------------------------------*/ #include /**********ERROR**********/ void sort(int x,int n) { int i,j,t; for(i=0;i /**********ERROR**********/ for(j=0;j /**********ERROR**********/ if(x[i]>x[i+1]) { t=x[j]; x[j]=x[j+1]; x[j+1]=t; } } main() { int i,n,a[100]; printf(\ scanf(\ for(i=0;i printf(\ for(i=0;i<=n-1;i++) printf(\ printf(\} C、3 D、无确定值 C 7.以下运算符中,优先级最高的运算符是()。 A、++ B、, C、?: D、&& A 7.定义共用体的关键字是 A、union B、typedef C、enum D、struct A 8.a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是()。 A、a*b/a*b==1 B、a/b*b+a%b==a C、a/b*b==a D、a/b*b/a==1 B 9.执行下列语句后的输出为()。 int j=-1; if(j<=1) printf(\ else printf(\ A、%%%%c B、有错,执行不正确 C、**** D、%%%% C 10.有以下程序 main() { int i=1,j=1,k=2; if((j++||k++)&&i++) printf(\\n\); } 执行后输出结果是 A、2,2,2 B、2,2,3 C、1,1,2 D、2,2,1 A 11.对两个数组a和b进行如下初始化: char a[] = “ABCDEF”; char b[] = {?A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是 A、a与b中都存放字符串 B、a数组比b数组长度长 C、a与b长度相同 D、a与b完全相同 B 12.下面叙述中错误的是 A、若函数的定义出现在主调函数之前,则可以不必再加说明 B、一般来说,函数的形参和实参的类型要一致 C、若一个函数没有return语句,则什么值也不会返回 D、函数的形式参数,在函数未被调用时就不被分配存储空间 C 13.C语言的注释定界符是()。 A、\\* *\\ B、{ } C、[ ] D、/* */ D 14.若x=2,y=3则x&y的结果是()。 A、3 B、0 C、5 D、2 D 14.与十进制数97不等值的字符常量是 A、?\\101? B、?\\x61 C、?\\141? D、?a? A 15.以下选项中正确的实型常量是 A、0.03x102 B、32 C、3.1415 D、0 C 16.以下可作为函数fopen中第一个参数的正确格式是()。 A、c:\%user\\text.txt B、c:user\\text.txt C、\、\ C 17.以下选项中不合法的用户标识符是 A、Dim B、printf C、_123 D、A$ D 18.若有定义int a[10],*p=a;,则p+5表示 A、元素a[5]的地址 B、元素a[6]的地址 C、元素a[6]的值 D、元素a[5]的值 A 19.Turbo C中int类型变量所占字节数是 A、4 B、3 C、2 D、1 C 20.以下程序运行后的输出结果是 。 struct STU { char name[10]; int num; int score; }; main() { struct STU s[5] = {{“YangSan”, 20041,703}, {“LiSiGuo”,20042, 580}, {“WangYin”,20043,680},{“SunDan”, 20044, 550}, {“Penghua”,20045,537}}, *p[5], *t; int i, j; for(i = 0; i < 5; i++) p[i] = &s[i]; for(i = 0; i < 4; i++) for(j = i + 1; i < 5; j++) if(p[i] ->score >p[j] ->score) { t = p[i]; p[i] = p[j]; p[j] = t; } printf(“%d %d\\n”, s[1].score, p[1] ->score); } A、580 680 B、680 680 C、580 550 D、550 580 C 21.以下四个程序中,不能对两个整型值进行交换的是 A、 B、 C、 D、 D 22. 以下合法的C语言赋值语句是 A、a=b=58 B、a=58,b=58 C、--I D、k=int(a+b) C 23.以下不正确的定义语句是()。 A、double x[5]={2.0,4.0,6.0,8.0,10.0}; B、char c1[]={'1','2','3','4','5'}; C、char c2[]={'\\x10','\\xa','\\x8'}; D、int y[5]={0,1,3,5,7,9}; D 24.以下运算符中,优先级最高的运算符是()。 A、(类型) B、+ C、*= D、>= A 25.下列选项中,合法的C语言关键字是()。 A、cher B、integer C、VAR D、default D 26.下列选项中,合法的C语言关键字是()。 A、cher B、integer C、VAR D、default D 如果有一个字符串,其中第十个字符为'\\n',则此字符串的 有效字符为9个。 错误 整数 -32100可以赋值给int型和long int型变量。 正确 若定义:int a=0,b=0; 则执行表达式(++a>0||++b>0)后,a 的值为1,b 的值为0,表达式的值为1。 正确 经过下述赋值int x=3;double y;y=(double)x;后,则x变量的数据类型为int。 正确 若有定义和语句: int a;char c;float f;scanf(\若通过键盘输入: 10,A,12.5,则a=10,c='A',f=12.5. 正确 用fopen(\打开的文件\可以进行修改。 正确 x*=y+8 等价于 x=x*(y+8)。 正确 int max(a,b);是正确的函数调用语句. 错误 函数strlen(\的值是7。 错误 若有定义:int i=3,j;执行j=++i;后,i,j的值都为4。 正确 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:对任意输入的 x,用下式计算并输出 y 的值。 -1 x<0 y= 0 x=0 1 x>0 ------------------------------------------------*/ #include void bky(); int fun(int n) { /**********Begin**********/ /********** End **********/ } void main () { int x,y; printf(\ scanf(\ y=fun(x); printf(\ bky(); } void bky() { FILE *IN,*OUT; int i; int iIN; long int iOUT; IN=fopen(\ if(IN==NULL) { printf(\ } OUT=fopen(\ if(OUT==NULL) { printf(\ } for(i=0;i<5;i++) { fscanf(IN,\ iOUT=fun(iIN); fprintf(OUT,\ } fclose(IN); fclose(OUT); 【参考代码】 int m; if(n<0) m=-1; else if(n==0) m=0; else m=1; return m; 或 int m; if(n>=0) if(n>0) m=1; else m=0; else m=-1; return m; =============== /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:判断整数x是否是同构数。若是同构数,函数返回1; 否则返回0。x的值由主函数从键盘读入,要求不大 于100。 说明:所谓“同构数”是指这样的数,这个数出现在它的 平方数的右边。 例如:输入整数5,5的平方数是25,5是25中右侧的数,所 以5是同构数。 ------------------------------------------------*/ #include int fun(int x) { /**********Begin**********/ /********** End **********/ } main() { int x,y; printf(\ scanf(\ if(x>100) { printf(\ exit(0); } y=fun(x); if(y) printf(\ else printf(\ bky(); } void bky() { FILE *IN,*OUT; int n,t; int o; IN=fopen(\ if(IN==NULL) { printf(\ } OUT=fopen(\ if(OUT==NULL) { printf(\ } for(t = 0 ; t < 5 ; t++) { fscanf(IN, \ o=fun(n); fprintf(OUT, \ } fclose(IN); fclose(OUT); } 【参考代码】 int k; k=x*x; if((k==x)||(k0==x)) return 1; else return 0; /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:判断m是否为素数,若是返回1,否则返回0。 ------------------------------------------------------*/ main() { int m,k=0; for(m=1;m<100;m++) if(fun(m)==1) { printf(\ if(k%5==0) printf(\ } } /**********ERROR**********/ void fun( int n) { int i,k=1; if(m<=1) k=0; /**********ERROR**********/ for(i=1;i /**********ERROR**********/ if(m%i=0) k=0; /**********ERROR**********/ return m; } 【改错1】 【学生答案】void fun( int n)【参考答案】 int fun( int m) fun( int m) ============================================================ 【改错2】 【学生答案】for(i=1;i for(i=2;m>i;i++) for(i=2;i<=m-1;i++) for(i=2;m-1=>i;i++) ============================================================ 【改错3】 【学生答案】if(m%i=0) k=0;【参考答案】 if(m%i==0) k=0; ============================================================ 【改错4】 【学生答案】return m;【参考答案】 return k; ============================================================ /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:已知一个数列从第0项开始的前三项分别为0、0、1,以 后的各项都是其相邻的前三项的和。下列给定程序中, 函数fun的功能是:计算并输出该数列的前n项的平方根 之和sum,n的值通过形参传入。 例如:当n=10时,程序的输出结果应为23.197745。 ------------------------------------------------------*/ #include /**********ERROR**********/ fun (int n) { double sum,s0,s1,s2,s; int k; /**********ERROR**********/ sum=0.0; if(n<=2) sum=0.0; s0=0.0; s1=0.0; /**********ERROR**********/ s2=0.0; /**********ERROR**********/ for(k=4;k>n;k++) { s=s0+s1+s2; sum+=sqrt(s); s0=s1;s1=s2;s2=s; } return sum; }
正在阅读:
C语言期末考试题09-11
最高院建设工程施工合同司法解释第十七条 工程款利息的计算标准05-30
安全工程师《安全生产法及相关法律知识》06-05
力波:“两防”专项施工方案 - 图文03-27
幼儿园毕业感言20字优秀5篇03-23
小班语言云朵棉花糖教案附故事05-09
医学细胞生物学习题集(含参考答案)04-20
语文版九年级上教学计划(二)11-12
走近秋天作文500字07-16
因特网的服务类型07-31
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 考试题
- 期末
- 语言
- 四层框架结构,全手算
- D1K32+167.17框架桥模板支架设计计算书
- 教材全解2016人教版八年级数学下册第17章检测题及答案解析
- 中国法律思想史论文
- 2019年整理--浅谈基层法院在构建和谐社会中的作用
- 中国工业螺杆泵行业市场前景分析预测年度报告(目录) - 图文
- 2017同等学力申硕学科综合考试范围和合格分数线
- 《机电传动与控制》第06章在线测试
- 2014年广一模英语学科分析报告 -
- 2018届甘肃省高三第二次高考诊断文科数学试题及答案 精品
- 基于单片机的水塔自动注水控制
- 2019年中国皮卡车产业园区产业深度调研与投资战略咨询报告(定制版)目录
- 2013年教师用书课下作业:Unit1 Section 课时跟踪检测
- 在县委党校青干班结业典礼上的讲话
- 2021山西大学数学专业考研真题经验参考书
- 旅游审美试卷
- 10-11数学建模训练题
- PCR试题要点
- 小学数学课题结题报告
- 形势与政策-11讲 第5讲 以农为本 取焦“三农”