天津城建大学C语言

本试卷为天津城建大学C语言,题目包括:填空题。

本卷包括如下题型:

一、填空题

C语言

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

1、在循环中,continue语句与break语句的区别是:continue语句是语句的区别是:continue语句是 ________ ,break 是 ________ 。
2、c语言本身不提供输入输出语句,输入和输出操作是由________来实现的。
3、以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。
#include<stdio.h>
main() {
int a〔10],*p,*s;
for(p=a;p-a<10;p++)scanf("%d",p);
for(p=a,s=a;p-a<10;p++)if(*p>*s)s=p;
printf("max=%d\n",________);
}
4、已有定义:double *p;
,请写出完整的语句,利用malloc函数使p指向一个双精度型 的动态存储单元 ________ 。
5、以下程序的输出结果是 ________ 。
main()
{
int a=0 a+=(a=8);
printf("%d\n",a);
}
6、mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。 int mystrlen(char *str)
{
int i;
for(i=0; ________!=‘\0';i++);
return( ________);
}
7、请将下列程序中的函数声明语句补充完整。
#include <stdio.h>
int ________ ;
main()
{
int x,y,(*p)();
scanf("%d%d",&x,&y);
p=max;
printf("%d\n",(*p)(x,y));
}
int max(int a,int b)
{
return(a>b?a:b);
}
8、定义结构体类型时采用的关键字是__________。
9、在c语言程序中,无论是一般磁盘文件还是设备文件,都可以通过文件结构类型的数据集合进行输入、输出操作。而且文件结构是由系统定义的,取名为_______。
10、c语言中free(p)的作用是释放由________所指向的内存区间。
11、c允许用一种特殊形式的字符常量,就是以字符\开头的字符序列,称为________。
12、ferror函数用来检测文件读写时是否发生错误,若未发生读写错误,则返回值是________。
13、宏定义必须写在______之外
14、一个3位的二进制数能表示几个数?
15、如果一个变量要在一个程序中的所有函数都能共享,则应该定义成为________。
16、若int a=5,b=4,c=2; 表达式a>b!=c 的值是________。
17、以下程序的输出结果是________。
main()
{
int a=-1, b;
if(a<0) b=2*a+1;
else b=2*a-1;
printf("%d",b);
}
18、#include <stdio.h>
#include <string.h>
void main()
{
char a[10]={'a','b','c','d','\0','f','g','h','\0'};
int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d\n",i,j);
}
19、在c语言中,函数的返回值是由___________语句传递的。
20、程序运行结果是________。
void swap(int a[2])
{
int t;
t=a[0];
a[0]=a[1];
a[1]=t;
}
void main()
{
int x[2]={5,8};
swap(x);
printf("x[0]=%d,x[1]=%d\n",x[0],x[1]);
}
21、下面程序根据以下函数关系,对输入的每个x 值,计算出y值。请分析程序填空。
main()
{
int x,y;
scanf("%d",&x);
if(【1】________) y=x*(x+2);
else if(【2】________) y=x-1;
else 【3】________;
if(y!=-1) printf("%d",y);
else printf("error");
}
22、循环语句for(i=0;i<3;i++) printf("*");
表达式i=0 执行【1】________次,表达式i++执行【2】________次。
23、在c 语言中,二维数组在内存中的存放顺序是________。
24、以下程序可求出所有的水仙花数。(水仙花数是三位正数, 其各位数字的立方和等于该正数,如: 407=4*4*4+0*0*0+7*7*7)main()
{
int x,y,z,a[8],m,i=0;
printf("the special numbers are :\n");
for (【1】________;m++)
{
x=m/100;
y=【2】________;
z=m%10;
if (m==x*x*x+y*y*y+z*z*z)
{
【3】________;
i++;
}
}
for (x=0;x<i;x++)printf(%6d",a[x]);
}
25、下面程序的功能是检查一个二维数组是否对称(即对所有i和j 都有a[i][j]=a[j][i] )。请分析程序填空。
main()
{
int i,j,found=0,a[4][4];
printf("enter array(4*4):\n");
for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);
for(j=0;j<4;j++)for( 【1】________;i<4;i++)if(a[j][i]!=a[i][j])
{
【2】________;
break;
}
if(found) printf("no");
else printf("yes");
}
26、在c 语言中,一个函数一般由两个部分组成,它们是【1】和【2】。
27、以下程序运行后的输出结果是 ________ int a=5;
fun(int b)
{
static int a=10;
a+=b++;
printf("%d ",a);
}
main()
{
int c=20;
fun(c);
a+=c++;
printf("%d\n",a);
}
28、以下程序的输出结果是 ________ 。
#include <stdio.h>
main()
{
int k=1,s=0;
do
{
if((k%2)!=0) continue;
s+=k;
k++;
}
while(k>10);
printf("s=%d\n",s);
}
29、请补充函数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));
}
30、改正下列程序中不正确的语句。
main()
{
int n ;
float s=1.0;
for(n=10;n>1;n--) s=s+1/n;
printf("%6.1f\n",s);
}
31、下面程序是计算10个整数中奇数的和及其偶数的和,请填空。
main()
{
int a,b,c,i;
a=c=0;
for(i=1;i<=10;i++)
{
scanf("%d",&b);
canf("%d",&b);
________ ________ ________
}
printf("偶数的和=%d\n",a);
printf("奇数的和=%d\n",c);
}
32、下列给定程序中,函数proc()的功能是计算正整数m 各位上数字的平方和。 例如,输入498,则输出应该是161。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h> long proc(10ng m)
{
long sum=1;
do
{
sum+=(m%10)*(m%10);
m/= 10;
}
while(m)
return(sum);
}
void main()
{
long n;
system("cls");
printf("please enter a number:");
scanf("%1d",&n);
printf("\n%ld\n",proc(n));
}
33、请阅读并分析以下程序,该程序的输出结果是:
#include <stdio.h>
int funa(int a)
{
int b=0;
static int c=3;
a=c++,b++;
return(a);
}
main()
{
int a=2,i,k;
for(i=0;i<2;i++)k=funa(a++);
printf("%d\n",k);
}
34、以下程序在输入5,2之后的执行结果是________。
#include<stdio.h>
void main()
{
int s,t,a,b;
scanf("%d,%d",&a,&b);
s=1;
t=1;
if(a>0) s=s+1;
if(a>b) t=s+t;
else if(a==b) t=5;
else t=2*s;
printf("s=%d,t=%d\n",s,t);
}
35、C语言中的标识符只能由三种字符组成,他们是 字母,数字,___。
36、C语言中函数返回值的类型是由______决定的。
37、定义一个指针p,它指向一个有6个整型元素的一维数组,定义语句为 ______。
38、若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为______。
39、在scanf函数中,用符号______表示变量的地址。
40、在C语言中,以______作为字符串结束标志。