1、C语言程序设计试题八一、选择题 1一个C语言程序是由( )构成。 A语句 B行号 C数据 D函数 2下面标识符中正确的是( )。 Aa#bc B123ABC Csime DYMD 3在C语言中,存储一个整型、字符型、双精度实型变量所需的字节数是( )。 )。 )。 )。 A2、1、8 B4、1、4 C4、1、4 D2、2、8 4.为了避免嵌套的条件分支语句 if-else中的else总是与( ) 组成成对关系。 A. 缩排位置相同的 B. 在其之前未配对的 C. 在其之前未配对的最近的if D. 在同一行上的if 5下列表达式的结果正确的是( )。 int a,b,c,d; a=b=c=d=2
2、; d=a+1=3?b=a+2:a+3 A2 B4 C3 D5 二、填空题 1.在C语言中,正确的标识符是由_组成的,且由_开头的。 2. 设x=3,那么表达式y=(+x)+(+x)的结果为_,表达式执行后,变量x的结果为_。3. 一个变量的指针是指_。 4. 组成数组元素的特点是_;组成结构体元素的特点是_。 5. 在C语言程序中,对文件进行操作首先要_;然后对文件进行操作,最后要对文件实行_操作,防止文件中信息的丢失。6. 对字符串进行操作的函数有_等。 7. C语言程序是由_构成的,而C语言的函数是由_构成的。 8. 要想定义整型变量a , 实型变量 b , 字符型的变量c,应该使用的正
3、确语句为_。 9. 写出下面表达式的值3*5/7+7%3_ x=2 ; y=4; (x+)+y _ 3+4=7-10_ 34 ? 3%2: 1 _x=2,y=2;+x&+y_ x=3 ; x+=x-=2 _三、判断题 1. C语言的一个特点是可以对计算机硬件进行操作 ( ) 2. 在循环过程中,使用break语句和continue语句的作用是一样的 ( ) 3. 在函数的定义和调用过程中,形式参数和实在参数数目可以不一致 ( ) 4. 指针变量可以接收任何类型的值 ( ) 5. 在C语言程序设计中,字符数组和字符串不是完全一样的概念 ( ) 6. 文件指针是结构体类型,用符号file来表示 (
4、 ) 7. 选择结构(if语句)和循环结构都可以使用嵌套形式 ( ) 8. 在定义二维数组时,可以将该数组的两个维数全部省略 ( ) 9. 逻辑运算符 & | ! 的运算顺序是 ! 优先于 & 优先于 | ( ) 10. 任何数组都可以实现整体使用操作 ( )四、程序填空题 1.下面是实现打印九九乘法表的程序,请在画线的位置填上适当的语句,使程序(段)完整。 main() int i , j , k; for(i=1;_; i+) for(j=1;_; j+) printf(“%d*%d=%d”,_); printf(_); 2.自己设计一个自定义函数,实现求两个数的最大数的功能,自定义函数如
5、下: int max(x,y) int x , y ; 3.设有如下面的结构体,请用C语言的语句定义出正确的结构体形式:学生信息:包括(姓名,性别,年龄,分数),并且定义变量stud和数组stud130struct student 4. 根据给出的程序段,请写出正确的结果 x=1 ; sum=1 ; for (x=1 ; x=5 ; x+) sum=sum*x; 上面的程序段实现的功能是:_ ; 其运行结果为_。 5.设有如下的语句。 int a=43,b,c; b=23; c=a+ * b; (1)上面的语句段执行后a= b= c= ;(2)简述a+和+a的相同点和不同点: 6设有如下的程序
6、: main( ) int i=3,*p1; int a3=15,30,45,*p2; p1=&i; p2=a; p1=p2+2; printf(“%d,%dn”,*p1,*p2); 程序运行结果是: 。五、编程题 (25分)1编程实现对10个整数进行冒泡排序(要求排成升序)。 2编程实现求下面的式子的结果3编程实现将文本文件file1.dat中的内容复制到文本文件file2.dat中去六、附加题 用C语言程序实现在已知链表中的第三个位置插入数值为a的程序C语言程序设计试题八答案一、选择题 1D 2. C 3. A 4. C 5. B二、填空题 1字母、数字、下划线;以字母、下划线开头。 21
7、0;5。 3. 该变量的地址。 4一组数据类型相同的元素构成的;一组数据类型不同的元素构成的。 5 打开;关闭。 6字符串长度、取子字符串、字符串替换、字符串复制等。 7 函数;语句。 8 int a ; float b ; char c ; 9 9 93 6 1 1 1 2三、判断题 1. 对 2. 错 3. 错 4. 错 5. 对 6. 错 7. 对 8. 错 9.对 10. 错四、程序填空题1. i=9 j=y) z=x; else z=y; return z; 3. char name20; char sex; int age; float score; 4. 实现功能:计算连续数之积
8、, 即sum=1*2*3*4*5 ; 运行结果:sum=120 5. 44 22 946 a+:先加1,后使用表达式的值;+a表示先加1,后使用表达式的值,它们最后的结果使a加1。 645,15五、编程题1编程实现对12个整数进行冒泡排序(要求排成升序)。 Main() int a12; int m,n,p; for (m=0;m=11;m+)(m=0;m=11;m+) scanf(“%d”,&am); for (m=0;m=11;m+) for(n=0;nan+1) p=an; an=an+1; an+1=p; for (m=0;m6) y=(x-3)/(2*x-12); else y=-2
9、*x*x+4*x-10; printf(“y=%f”,y); 3编程实现将文本文件file1.dat中的内容复制到文本文件file2.dat中去main() char ch; FILE *fp1,*fp2; Fp1=fopen(“file1.dat”, “r”); Fp2=fopen(“file2.dat”, “w”); Ch=fgetc(fp1); While(ch!=EOF) fputc(ch,fp2); Ch=fgetc(fp1); Fclose(fp1); Fclose(fp2); 六、附加题p=H;K=0;While(p!=NULL & knext; k+; if(p=NULL & H!=NULL) printf(“this is invilid”);else q=(Struct Linklist *)malloc(sizeof(Struct Linklist); q-data=x; q-data=x; q-next=p-next; p-next=q;