天津理工大学C语言程序设计期末
本试卷为天津理工大学C语言程序设计期末,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言程序设计期末
一、单项选择题 (共20题,每题2分,共计40分)
( B )
1、若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是________。
( C )
2、有下列程序: int fun1(double a) { return a*=a; } int fun2(double x,double y) { double a=0,b=0; a=fun1(x); b=fun1(y); return(int)(a+b); } main() { double w; w=fun2(1.1,2.0),…… } 程序执行后变量w中的值是________。 、
( D )
3、fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下划线处应填写的是________。 #define N 5 void fun(int x[N]) { int m; for(m=N-t;m>=O;m-)scanf("%d",________); }
( A )
4、在c语言中,存储一个字符型、整型、单精度实型变量所需的空间是________。型、单精度实型变量所需的空间是________。
( A )
5、以下程序的输出结果是 main() { int a=0,i; for(i=;i<5;i++) { switch(i) { case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; } } printf("%d\n",a); }
( C )
6、以下说法中正确的是________。
( D )
7、若有以下说明和语句: int c[4][5],(*p)[5]; p=c; 能够正确引用c数组元素的是________。
( B )
8、定义如下一维数组:int a[5],*p; 则下列描述错误的是________。
( C )
9、以下对结构体类型变量的定义中,不正确的是________。
( A )
10、下列哪个是c语言的有效标识符
( D )
11、有以下程序: voidf(int *x,int * y) { int t; t= *x; *x= *y; *y=t; } main() { int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a; q=&a[7]; while(p) { f(p,q); p++; q--; } for(i=0;i<8;i++)printf("%d,",a[i]); } 程序运行后的输出结果是______;
( D )
12、有以下程序 #include<stdio.h> main () { int i, n; for (i = 0; i < 8; i++) { n = rand () % 5; switch (n) { case 1: case 3: printf ("%d\n", n); break; case 2: case 4: printf ("%d\n", n); continue; case 0: exit (0); } printf ("%d\n", n); } } 以下关于程序执行情况的叙述,正确的是______。
( A )
13、执行下面程序中的输出语句后,a的值是________。 #include <stdio.h> main() { int a; printf("%d\n",(a=3*5,a*4)); }
( C )
14、以下叙述中不正确的是________。
( B )
15、设ch是char型变量,其值为c,且有下面的表达式ch=(ch>='a'&&ch<='z')?(ch+32):ch上面表达式的值是______。
( A )
16、有以下程序 struct stu { char num[10]; float score[3]; } ; main( ) { struct stu s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p; int i; float sum=0; p=s+1; for(i=0;i<3;i++)sum=sum+p->score[i]; printf("%.3f\n",sum); } 程序运行后的输出结果是___________。
( A )
17、以下选项中哪些描述是不正确的?
( A )
18、以下关于逻辑运算符两侧运算对象的叙述中正确的是________。
( B )
19、以下程序的输出结果为________。 main() { int a=1,b=2,c=3,d=4,e=5; printf("%d\n",func((a+b,b+c,c+a),(d+e))); } int func(int x,int y) { return(x+y); }
( B )
20、如果int a=2,b=3,c=0,下列描述正确的是________。
二、填空题 (共10题,每题2分,共计20分)
1、c语言本身不提供输入输出语句,输入和输出操作是由________来实现的。
2、#include <stdio.h> void main() { int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0; for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1]; printf("%d\n",s); }
3、字符串函数________用于从指定的磁盘文件中读出一个字符串。
4、实参与形参占用独立的( )
5、若int a=5,b=4,c=2; 表达式a>b!=c 的值是________。
6、下列程序段的运行结果是________。 #define add(x , y) x+y main() { int a , b , s; A=5, b=6; S=add(a,b); printf("s=%d\n" , s); }
7、以下程序运行的结果为() #include <stdio.h> int d = 1; fun(int p) { int d = 5; d += p++; printf( "%d,", d); } void main() { int a = 3; fun(a); d += a++; printf( "%d\n", d); }
8、结构化程序三种结构为________。
9、C语言提供的三种逻辑运算符是______。
10、若x、y、z均为int型变量,则描述“x或y中有一个小于z”的表达式是______
三、编程题 (共3题,每题0分,共计40分)
1、编写函数 void del(char *s,char c),其功能是在 s 所指字符串中删除与变量 c 相同的 字符,并设计主函数实现: (1)从键盘输入字符串和指定被删除的字符; (2)调用 del()函数实现删除操作; (3)输出删除后的字符串。 说明:不允许使用除 gets和 puts之外的任何字符串处理库函数。
2、编写程序:用结构体数组,学生信息由学号、姓名,成绩组成, 数据如下:201513135157 张三 90 1)使用结构体数组,将学生的数据按成绩从高到低排序显示到屏幕上 2)将学生中不及格学生的姓名显示出来 3)写一个函数,获取成绩低于平均分的学生记录并返回低于平均分的学生人数
3、要求输出国际象棋棋盘。
相关标签:
- C语言
- 天津理工大学
- 期末