天津理工大学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语言
- 天津理工大学
- 期末