期末考试试题B.docx
期末考试试题B一、选择题。答案写在答题纸上。(每题1分,共15分)1 .以下字符不能构成C语言标识符的是()oA、? B、4 C、Y D、_2 . VC+6.0中,一个整型数据在内存中占用的字节数为()个。A、1B、2C、3D、4.以下属于声明静态局部变量的类型的是()。A、staticB、registerC、externD、auto.每个C程序都必须且仅有一个()oA、预处理命令B、函数C、main()函数D、语句.已有定义:char a =Hxyzbn, b口二b;,以下表达中正确的选项是()。A、数组a和b的长度相同B、a数组长度小于b数组长度C、a数组长度大于b数组长度D、上述说法都不对3 .有语句:“chara9;",关于该语句,说法不正确的选项是()。A、它是数组 B、首元素是a0 C、最后一个元素是a9D、有9个元素. C语言中,实参向形参传递值的方向是()oA、单向B、双向C、任意D、不能确定.当 a=l, b=2, c=3, d=4 时,表达式(m=a>b)&&(n=c<d)的值是()。A、1B、2 C、0 D、不能确定.语句 “enum Weekday SUN,MON,TUE, WED,THU,FRI,SAT;” 中 TUE 的值是()。A、0B、1C、2D、无值. while循环改成dowhile循环后,当while后面的表达式第一次执行时为假,do.while 与while的执行相比,结果()oA、不同B、相同 C、不同或相同 D、不能确定.执行语句 “int n=10;int *p=&n;int *r=p;(*p)+;(*r)+;” 后,n 的值是()。A、10B、11C、12 D、14.对于“for(表达式1;表达式2;表达式3)语句”,以下说法正确地是()oA、表达式1可以放在语句中B、表达式2可以放在for的前面C、表达式3可以放在语句中D、3个表达式都不能改动位置4 . inta20=0,l,2,3,4,5,6,7,8,9,10,11,那么 a15的值是()。A、11B、10 C、12 D、0.转义字符在内存中占()字节。A、0 B、1 C、2 D、3.判断char型变量c是否大写的表达式的是()。A、Av=c<=ZB、('A'v=c)| |(c<=Z)C、(A<=c)&(c<='Z')D、('A'<=c)&&(cv='Z')二、填空题(每空1分,共10分)1 . C语言提供的基本控制结构有:顺序结构、和循环结构。2 .定义数组:char array = ttChina!,那么数组array所占的内存空间至少是 个字节。3 . 一个函数的返回值类型和该函数的 一致。4 .有如下定义语句:inta口3=22, 32, 34, 47, 51, 61, 88, 89, 42;,那么 42 在数组 a 中的行列坐标各为 O.设inta=l, b=2;,那么(a+)+b表达式的值分别为。5 .无参函数可以不带回 o.定义常变量必须对它。6 .关系表达式的值只有 o.在内存中,字符串常量结束标志是 o7 . (*p).num 可以写成 o三、判断题(每题1分,共5分,对的写“ J ”,错的写“ X ”)1. break语句可用于if条件判断语句内。()定义二维数组时行列下标都可以不指定。()2. (y=7, y+1, x=y, x+l)的值为 9。()数组必须先定义后使用。()3. 一个C程序中,某个函数的形式参数和实际参数可以相同也可以不相同。()四、程序分析题,根据要求补充程序或写出程序运行结果。答案写在答题纸上。(每题6 分,共30分)1 .写出以下程序的运行结果。#include<stdio.h>void swapl(int *a, int *b) int t =*a;*a = *b;*b = t;)int main() int x = 5, y = 10;printf(n%d,%dn",x,y);swapl(&x, &y);printf(n%d,%dnH,x,y);return 0;)2 .写出以下程序运行结果。#include <stdio.h>void main ()(int cl,c2;cl=,a'c2=b;printf(n%c,%cnn,cl-32,c2-32);)3 .分析以下程序,当分别输入A, B, C时,写出程序的运行结果。#include <stdio.h>void main ()char grade;scanf(H%cn,&grade);switch(grade)(case A:printf("85100nn);break;case B:printf("7084n");break;case 'C':printf(”6069n");break;case ,D,:printf(H<60n,);break;default:printf("数据错误! n");4 .写出以下程序运行结果。#include <stdio.h> void main ()char c=HI love China!n;int i;for(i=0;ci!=,0,;i+) printf(n%cn,ci);printf(nnn);)5 .写出以下程序运行结果。#include <stdio.h>#include <string.h>main()struct studentlong num;char name20;char sex;float score;);struct student stu 1;struct student *p;p=&stu_l;stu_l.num=10101;strcpy(stu_l .name,nLi Linn);stu_l.sex-M*;stu l.score=89.5;printf(nNo.:%ldnname:%snsex:%cnscore:%5.1 An”, stu_l .num,stu_l .name,stu_l .sex,stu_l .score);printf(nnNo.:%ldnname:%snsex:%cnscore:%5,1 fnn, (*p).num,(*p).name,(*p).sex, (p).score);五、编程题,根据要求编写程序,无需写出程序运行结果。(每题8分,共40分)1 .编写程序100内奇数之和,即求1+3+5 + 99。2 .一维数组a =5.1,3.5,4.2,0.5,9.7,4.8,6.5,8.8,10.2,使用指针写一个程序实现求该一 维数组所有元素之和。3 .用学过的排序法对10个整数按从大到小进行排序,写出程序。4 .用递归函数实现求a!+b!的值,a, b的值由键盘随机输入。5 .写程序实现将字符串a的内容“lamaboy!”复制给字符串b,方法不限。