C语言程序设计试题样例
第X套: 一. 选择题
(1)凡是未显示定义存储类别的局部变量,其默认的存储类别为: (A)自动 (B)静态 (C)外部 (D)寄存器 答案: A
(2)设有如下的变量定义: int i=8,k,a,b; unsigned long w=5; double x=1.42, y=5.2;
则以下符合C语言语法的表达式是:
(A)a+=a-=(b=4)*(a=3) (B) x%(-3);
(C)a=a*3=2 (D) y=float(i) 答案: A
(3)函数fscanf的功能是:
(A)从文件输入信息 (B)将信息输出到文件 (C)从控制台输入信息 (D)将信息输出到控制台 答案: A
(4)执行以下程序后,输出结果是:
(A)7 (B)6 (C)5 (D)4 main( ) { int m=5;
if (m++>5) printf(\,m); else printf(\,m--); } 答案: B
(5)C语言中while与do while语句的主要区别是: (A)do while的循环体至少无条件执行一次 (B)do while允许从外部转到循环体内
(C)do while的循环体不能是复合语句 (D)while的循环控制条件比do while的严格 答案: AB
(6)使用共用(联合)体union的目的是:
(A)将一组数据作为一个整体,以便其成员共享同一存储空间
(B)将一组类型相同的数据作为一个整体,以便其成员共享同一存储空间 (C)将一组数据作为一个整体,以便程序使用
(D)将一组类型相同的数据作为一个整体,以便程序使用 答案: A
(7)在下列选项中,没有构成死循环的程序段是: (A)int i=100; while (1) { i=i0+1;
if (i>100) break; }
(B)for ( ; ;); (C)int k=1000;
do {++k;} while (k>=10000); (D)int s=36;
while (s); --s; 答案: C
C语言程序设计试题样例 第 1 页 共 35页
(8)以下程序运行后,如果从键盘上输入ABCDE<回车> ,则输出结果为: (A)8 (B)7 (C)6 (D)5 #include \ #include \ func (char str[ ] ) { int num=0;
while (*(str+num)!='\\0') num++; return (num); }
main( )
{ char str[10],*p=str;
gets (p); printf (\,func (p) ); } 答案: D
(9)运行下面的程序,如果从键盘上输入: ab<回车> c<回车> def<回车> 则输出结果为
(A)a (B)a (C)ab (D)abcdef b b c c c d d d e f
#include \ #define N 6 main( )
{ char c[N]; int i=0;
for ( ;i for(i=0;i (10)设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a>b)&&(n=c>d) 后,n 的值为 (A)1 (B)2 (C)3 (D)0 答案: B 二.填空题(请输入[复制粘贴]到TC3++中,自行调试) (11)执行以下程序后,输出结果是 。 #include \ #include \ fun (char *w,int n) { char t,*s1,*s2; s1=w; s2=w+n-1; while (s1 main( ) { char *p; p=\ fun(p,strlen(p)); C语言程序设计试题样例 第 2 页 共 35页 puts (p); } (12)运行以下程序后,如果从键盘上输入 65 14<回车> ,则输出结果为 。 main( ) { int m,n; printf (\:\ while (m!=n) { while (m>n) m-=n; while (n>m) n-=m; } printf (\ } (13)下面程序的输出结果是 。 char b[ ]=\ main( ) { char *chp; for (chp=b;*chp;chp+=2) printf (\ printf (\ } (14)下面程序的输出结果是 。 main( ) { int a[10]={19,23,44,17,37,28,49,36},*p; p=a; printf (\ } (15)下面程序的输出结果是 。 #include char ch[2][5]={\ int i, j, s=0; for (i=0;i<2;i++) p[i]=ch[i]; for (i=0;i<2;i++) for (j=0;p[i][j]>'0' && p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf (\ } (16)下面程序的输出结果是 。 #include struct bb *tp; }a[ ]={{1,\ void main( ) { struct bb *p=a; char c,*s; s=++p->y; printf(\ c=*p++->y; printf(\ s=p->y++; printf(\ c=(*p->y)++; printf(\ } (17)以下程序将一个数组中的值按逆序重新存放,例如输入的顺序是8,6,5,4,1要 C语言程序设计试题样例 第 3 页 共 35页 求改为1,4,5,6,8。请完善之。 #define N 5 void main( ) { int a[N],i,temp; for (i=0;i { temp=a[i];a[i]=a[N-i-1]; ; } for (i=0;i (18)设有一个描述零件加工的数据结构为:零件号pn 工序号wn 指针next ,下列程序建立一个包含10个零件加工数据的单向链表。请完善之。 #include #define LEN sizeof(struct parts) struct parts { char pn[10]; int wn; ; }; void main( ) { struct parts *head,*p; int i; head=NULL; for (i=0;i<10;i++) { p= ; scanf(\ scanf(\ p->next=head; head=p; } } (19)C语言中对文件的存取是以 为单位的。 (20)位段是以位为单位定义长度的结构体类型中的 。 三.编程题 (21)定义一个二维数组,输出其元素中的最大值及所在位置。 (22)将学生的学号,姓名,成绩定义为结构体类型,在主函数中输入全班学生 信息,在子函数中计算平均成绩。 ======================================================== 选择题样例(30题): 1. C语言的主要特点有哪些?(多选) A.简洁、紧凑,使用方便、灵活,易于学习和应用。 B.C语言是面向结构化程序设计的语言。 C.C语言允许直接对位、字节和地址进行操作。 D.数据类型丰富。 E.C语言生成的目标代码质量高。 答案: ABCDE 2. C语言程序由什么组成?(单选) A. 子程序 B. 主程序和子程序 C. 函数 D. 过程 C语言程序设计试题样例 第 4 页 共 35页 答案: C 3. 源程序要正确地运行,必须要有什么函数?(单选) A. printf函数 B. 自定义的函数 C. main函数 D. 不需要函数 答案: C 4. 指出下面合法的标识符:(多选) A. 3ab B. int C. ABC D. a_3 E. sum.a F. #abc G. _stu2 H. abc f 答案:CDG 5. 指出下面哪些是保留字:(多选) A. char B. abc C. printf D. Int E. float F. define G. include H. PI 答案:AEFG 6. 指出下面哪些是合法的用户定义的标识符?(多选) A. P-S B. putchar C. double D. _908 E. *par F. sheep! G. wind H. x y 答案:BDG 7. C语言的基本类型哪些:(多选) A. 整型 B. 枚举型 C. 数组型 D. 指针型 E. 字符型 F. 构造型 G. 实形 H. 空类型 答案: ABEG 8. 这段程序中的常量有:(多选) #define PI 3.14 void main() { int sum; sum = 10 + 15; printf(\ printf(\ } 这段程序中常量有: A. 10 B. sum C. 15 D. 25 E. main F. PI 答案:ACF 9. C语言中整形常量按进制划分,有以下几种:(多选) A. 十六进制常量 B. 十进制常量 C语言程序设计试题样例 第 5 页 共 35页