天津理工大学计算机C语言试题

本试卷为天津理工大学计算机C语言试题,题目包括:单项选择题,填空题,编程题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。

计算机C语言试题

一、单项选择题 (共20题,每题2分,共计40分)

(  C  )
1、c语言用________表示逻辑"真"值。
A、true
B、t或y
C、非零整型值
D、整型值0
(  B  )
2、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。 while((ch=getchar())!='e') printf("*");
A、5
B、4
C、6
D、1
(  D  )
3、以下函数findmax拟实现在数组中查找最大值并作为函数值返回, 但程序中有错导致不能实现预定功能
#define MIN -2147463647
int findmax(int x[],int n)
{
int i,max;
for(i=0;i<n;i++)
{
max=MIN;
if(max<x[i]) max=x[i];
}
return max;
}
造成错误的原因是________。
A、定义语句int i,max中max未赋值
B、赋值语句max=MIN;中,不应该给max赋MIN值
C、语句if(max<x[i]) max=x[i];中判断条件设置错误
D、赋值语句max=MIN;放错了位置
(  A  )
4、有以下程序
#include <stdio.h>
main()
{
int a1,a2;
char c1,c2;
scanf("%d%c%c",&a1,&c1,&a2,&c2);
printf(%d,%c,%d,%c,a1,c1,a2,c2);
}
若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出的结果是:12,a,34,b则正确的输入格式是(以下︿代表空格,<cr>代表回车)
A、12a34b<CR>
B、12︿a︿34︿b<CR>
C、12,a,34,b<CR>
D、12︿a34︿b<CR>
(  C  )
5、若有说明语句"int a[5],*p=a; ",则对数组元素的正确引用是________。
A、a[p]
B、p[a]
C、*(p+2)
D、p+2
(  D  )
6、有如下定义
struct person
{
char name[9] ;
int age ;
};
struct person class[10]={" johu" , 17 , "paul" , 19 , "mary" , 18 , "adam" , 16};
根据上述定义,能输出字母 m 的语句是______。
A、prinft ( " %c\n" , class[3].name );
B、printf ( " %c\n" , class[3].name[1] );
C、prinft ( " %c\n" , class[2].name[1] );
D、printf ( " %c\n" , class[2].name[0] );
(  C  )
7、设x、y、t均为int型变量,则执行语句x=y=3; t=++x||++y; 后,y的值为______。
A、不定值
B、4
C、3
D、1
(  D  )
8、有如下程序段: int*p,a[7]={-5,0,4,2,7,1}; p=a+6; 执行该程序段后,*p的值为________。
A、4
B、2
C、1
D、0
(  B  )
9、在下列字符序列中,合法的标识符是________。
A、P12&.a
B、stud_100
C、$water.12
D、88sum
(  C  )
10、在下列选项中,没有构成死循环的程序是________。
A、int i=100;
while(i) {
i=i%100+1;
if(i>100) break;
}
B、for(;;);
C、int k=1000;
do
++k ;
while(k>=1000);
D、int s=36;
while(s);
--s;
(  A  )
11、对以下定义的表述中,正确的是________
struct node
{
int num;
char name[10];
}
stud;
A、stud是一个结构体变量
B、stud是一个结构体类型
C、node是一个结构体数据
D、node是一个结构体变量
(  D  )
12、下列对整型常量定义的解释中正确的是________。
A、034代表八进制的数1C
B、034代表十进制的数34
C、034代表十六进制的数28
D、34L代表值为34的64位长整数
(  C  )
13、以下关于结构化程序的说法中,正确的是________。
A、结构化程序由单入口、单出口和循环3种结构组成
B、结构化程序由顺序、单入口和单出口3种结构组成
C、结构化程序由顺序、循环和GOTO语句结构组成
D、结构化由顺序、循环、循环和分支3种结构组成
(  C  )
14、下面程序的输出结果是________。
#include<stdio.h>
main() {
char a[]='a','b','c','d','f','g',*p;
p=a;
printf("%c\n",*p+4);
}
A、a
B、b
C、e
D、f
(  B  )
15、若定义a=3,b=4,执行printf("%d, %d",(a,b),(b,a)); 的输出结果为________。
A、3,4
B、4,3
C、3,3
D、4,4
(  B  )
16、c语言中数组下标的下限是________。
A、1
B、0
C、视具体情况而定
D、无固定下限
(  C  )
17、下列if语句中,不正确的是________。
A、if(x>y);
B、if(x==y) x+=y;
C、if(x!=y) scanf("%d",&x) else x=1;
D、if(x
(  C  )
18、下面哪个不是关键字?
A、int
B、struct
C、define
D、continue
(  A  )
19、char a1[]="abc",a2[80]="1234"; 将a1串连接到a2串后面的语句是________。
A、strcat(a2,a1);
B、strcpy(a2,a1);
C、strcat(a1,a2);
D、strcpy(a1,a2);
(  A  )
20、执行下面程序后,输出结果是()。
main()
{ a=45,b=27,c=0;
c=max(a,b);
printf("%d\n",c);
}
int max(int x,int y)
{ int z;
if(x>y) z=x;
else z=y;
return(z);
}
A、45
B、27
C、18
D、72

二、填空题 (共10题,每题2分,共计20分)

1、定义4行3列的整型二维数组a的语句是________。
2、c语言三个循环语句分别while语句、________语句和________语句。
3、以下程序的输出结果是________ 。
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);
}
4、表达式7+10>2 && 25 %5的结果是 ________ 。
5、以下程序的执行结果是____。
#include<stdio.h>
void main()
{
char c='a'+10;
printf("c=%c\n",c);
}
6、在c语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数________。
7、若有以下定义, int m=5,y=2;
则计算表达式y+=y-=m*=y 后y的值是【】。
8、编译预处理包括宏定义、文件包含、( )等。
9、在c语言中,将字符串中大写字母转换成小写字母的函数是______________。
10、以下的程序是求矩阵a,b的和,结果存入矩阵c中,并按矩阵形式输出。
#include<stdio.h>
void main()
{
int a[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}};
int b[3][4]={{-2,0,1,4} ,{5,-1,7,6},{6,8,0,2}};
int i,j,c[3][4];
for (i=0;i<3;i++)
for (j=0;j<4;j++) c[i][j]= _________;
for (i=0;i<3;i++)
{
for (j=0;j<4;j++) printf("%3d",c[i][j]);
________________;
}
}

三、编程题 (共3题,每题0分,共计40分)

1、编写程序,求s=1+(1+2)+….+(1+2+….+10)
2、编写程序:使用结构体,创建一个长度为n的链表。
3、编写程序,读一个在字母C和X之间的字符,打印出该字母在中间的相邻五个字母。如输入F,则输出DEFGH。