天津城建大学2023年计算机C语言相关题目

本试卷为天津城建大学2023年计算机C语言相关题目,题目包括:填空题。

本卷包括如下题型:

一、填空题

计算机C语言相关题目

一、填空题 (共40题,每题2.5分,共计100分)

1、有以下程序
main()
{
char c;
while((c=getchar())!='?') putchar( --c );
}
程序运行时,如果从键盘输入:ydg?n?<回车>,则输出结果为 ________ 。
2、仅由顺序、选择(分支)和重复(循环)结构构成的程序是________程序。
3、以下程序运行后的输出结果是 ________ 。
main()
{
char c;
int n=100;
float f=10;
double x;
x=f*=n/=(c=50);
printf("%d %f\n",n,x);
}
4、以下程序用于判断a、b、c能否构成三角形,若能,输出yes,否则输出no。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。
main()
{
float a,b,c;
scanf("%f%f%f",&a,&b,&c);
if(________)printf("yes\n");
/*a、b、c能构成三角形*/ else printf("no\n");
/*a、b、c不能构成三角形*/
}
5、以下程序运行后的输出结果是 ________
fun(int x)
{
if(x/2>0) fun(x/2);
printf("%d ",x);
}
main()
{
fun(6);
}
6、以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。
#include <stdio.h>
#include <ctype.h>
main()
{
char s[80], d[80];
int i,j;
gets(s);
for(i=j=0;s[i]!='\0';i++) if( ________ )
{
d[j]=s[i];
j++;
}
d[j]='\0';
puts(d);
}
7、符合结构化原则的三种基本控制结构是:选择结构、循环结构和 ________ 。
8、下列程序运行结果是 ________ 。
#include <stdio.h>
#include <string.h>
struct a ( int a; char b[10]; double c; );
void f(struct a *t);
main()
{
struct a a={1001, "zhangda",1098.0};
f(&a);
printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
void f(struct a *t)
{
strcpy(t->b,"changrong");
}
9、#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);
}
10、c语言中对文件读写之前必须先打开文件,文件的打开是通过调用________函数来实现。
11、在c语言程序中,无论是一般磁盘文件还是设备文件,都可以通过文件结构类型的数据集合进行输入、输出操作。而且文件结构是由系统定义的,取名为_______。
12、在c语言中,关系运算符中的"等于"表示为________。
13、局部变量的作用域是从______的位置起,到函数结束止。
14、一个3位的二进制数能表示几个数?
15、在vc++编译环境下,一个双精度型变量所占字节数是________。
16、有以下程序
#include <string.h>
main()
{
char a[]={'d','e','f','g','h','\0'};
int j;
j=strlen(a);
printf("%d\n",j);
}
程序运行后的输出结果是________。
17、下列程序段的运行结果是________。
int a=2 ,*p ;
p=&a;
printf("%d",*p);
18、设int a=5,b=6;
则表达式(++a==b--)?++a:--b的值是________。
19、若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为________。
20、在c语言中,对一维整型数组初始化时如果只给一部分元素赋初值,那么其他元素值均为________。
21、编译预处理包括宏定义、文件包含、( )等。
22、下列程序段的运行结果是________。
#define add(x , y) x+y
main()
{
int a , b , s;
A=5, b=6;
S=add(a,b);
printf("s=%d\n" , s);
}
23、以下程序的运行结果是________。
main()
{
int i=5;
printf("%d\n",sub(i));
}
sub(int n)
{
int a;
if(n==1) return 1;
a=n+sub(n-1);
return a;
}
24、main()
{
int a[5]={2,4,6,8,10},*p,* *k;
p=a;
k=&p;
printf("%d,",*(p++));
printf("%d\n",* *k);
}
程序的输出结果是________。
25、c程序是由函数构成的,其中必须有且只有一个______函数。
26、执行下列的程序段后,正确的结果是_____________。
int i=5;
while( i = 1)i -- ;
printf("%d", i );
27、若定义了int a[10],将数组元素中最后一个元素"赋值为10"语句是________。
28、对于文件末尾检测函数feof,如果文件指针已到文件末尾,则函数返回值是________。
29、用c语言编写的源程序文件的扩展名为"( )"。
30、在c 语言中(以16 位pc 机为例),一个char 型数据在内存中所占的字节数为________;
一个int 型数据在内存中所占的字节数为________。
31、下面程序的运行结果是________。
#include<stdio.h>
main()
{
int i,j;
for(i=4;i>=1;i--)
{
for(j=1;j<=i;j++) putchar('#');
for(j=1;j<=4-i;j++) putchar('*');
putchar('\n');
}
}
32、若有定义:double x[3][5];
则x 数组中行下标的下限为【1】,列下标的上限为【2】。
33、以下程序的运行结果是________。
int i=0;
main()
{
int i=5;
reset(i/2);
printf("i=%d\n",i);
reset(i=i/2);
printf("i=%d\n",i);
reset(i/2);
printf("i=%d\n",i);
workover(i);
printf("i=%d\n",i);
}
workover(int i)
{
i=(i%i)*((i*i)/(2*i)+4);
printf("i=%d\n",i);
return i;
}
reset(int i)
{
i=i<=2?5:0;
return i;
}
34、下面程序的运行结果是________。
#include<stdio.h>
main()
{
int i,x,y;
i=x=y=0;
do
{
++i;
if(i%2!=0)
{
x=x+i;
i++;
}
y=y+i++;
}
while(i<=7);
printf("x=%d,y=%d\n",x,y);
}
35、以下程序的运行结果是_____________。
main( )
{
int k, s ,a[3][3]={1,2,3,4,5,6,7,8,9};
s=0;
for( k=0; k<3; k++)s=s+ a[k][k];
printf("%d,",s);
}
36、请补充函数proc(),该函数的功能是:把从主函数中输入的由数字字符组成的字符串转换成一个无符号长整数,并且逆序输出。结果由函数返回。例如,输入:1234567,结果输出:7654321。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填人所编写的若干表达式或语句。 试题程序:
#include <stdio.h>
unsigned long proc(char*str)
{
unsigned long t=0: int k: int i=0;
i=str|en(str);
for( ________ ;i>=0;i--)
{
k= ________ ;
t= ________ ;
}
return t;
}
void main()
{
char str[8];
system("cls");
printf("enter a string made up of'0'to '9 ' digital character:\n");
gets(str);
printf("the string,is:%s\n",str);
if(strlen(str)>8) printf("the string is too tong!");
else printf("the result:%1u\n", proc(str));
}
37、请补充main()函数,该函数的功能是:把一个整数插入一个已经按从小到大排序的数组中。插入后,数组仍然有序。 例如,在数组bb[M]={10 20 30 40 50 60 70 80 85 95}
中插入75,结果为 bb[M]={10 20 30 40 50 60 70 75 80 85 95}
注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。 试题程序:
#define M 10
void main()
{
int i,j;
int n;
int bb[M+1]={10,20,30,40,50,60,70,80,85,95};
system("CLS");
printf("\nlnput n n");
scanf("%d",&n);
printf("\nn=%d",n);
printf("\n***original list***\n");
for(i=0;i<M;I++) printf("%4d",bb[i]);
for(i=0;i<M;I++)
{
if(n<=bb[i])
{
for(j==M; ________ ;j--) ________ ;
bb[j]=n;
________ ;
}
}
if(i==M) bb[i]=n: printf("\n****new list****\n");
for(i=0;i<M+1;I++) printf("%4d",bb[i]);
}
38、请补充main()函数,该函数的功能是:从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。结果仍然保存在原串中。 例如,输入"abcdefg",指定字符为"d",则输出"abe"。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。 试题程序:
#define M 80
void main()
{
int i=0;
char str[M];
char ch;
system("CLS");
printf("\n Input a strin9:\n");
gets(str);
printf("\n Input a charator;\n");
scanf("%c",&ch);
while(str[i]!='\0')
{
if(str[i]==ch) ________ ________ ;
}
str[i]= ________ ;
printf("\n***display string***\n");
puts(str);
}
39、C语言中函数返回值的类型是由______决定的。
40、如果一个函数无返回值,定义它时函数类型应是______。