北京信息科技大学历年C语言专升本练习

本试卷为北京信息科技大学历年C语言专升本练习,题目包括:填空题。

本卷包括如下题型:

一、填空题

C语言专升本练习

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

1、下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。 int n=0, ch;
ch=getchar( );
while( ________ )
{
if ( ________ ) n++;
c=getchar( );
}
2、在循环中,continue语句与break语句的区别是:continue语句是语句的区别是:continue语句是 ________ ,break 是 ________ 。
3、在c语言中,一个函数一般由两个部分组成,它们是________和________。
4、c语言本身不提供输入输出语句,输入和输出操作是由________来实现的。
5、c语言变量按其作用域分为 全局变量和局部变量。按其生存期分为________存储 和________存储 。
6、已有定义:double *p;
,请写出完整的语句,利用malloc函数使p指向一个双精度型 的动态存储单元 ________ 。
7、有以下程序
#include <stdio.h>
main ()
{
int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for (i=1;i<3;i++) for(j=i;j<3;j++) printtf("%d",a[i][j]);
printf("\n");
}
程序运行后的输出结果是________。
8、若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句________。
9、已有定义如下:
struct node
{
int data;
struct node *next;
}
*p;
以下语句调用malloc函数,使指针p指向一个具有struct node类型的动态存储空间。请填空。 p = (struct node *)malloc( ________ );
10、若从键盘输入58,则以下程序输出的结果是 ________ 。
main()
{
int a;
scanf("%d",&a);
if(a>50) printf("%d",a);
if(a>40) printf("%d",a);
if(a>30) printf("%d",a);
}
11、mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。 int mystrlen(char *str)
{
int i;
for(i=0; ________!=‘\0';i++);
return( ________);
}
12、以下程序中函数fun的功能是:统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并做为函数值返回。请填空:
#include<stdio.h>
#define N 3
typedef struct
{
int num;
char nam[10];
char sex;
}
SS;
int fun(SS person[])
{
int i,n=0;
for(i=0;i<N;i++) if( ________==’M’ ) n++;
return n;
}
main()
{
SS W[N]={{1,"AA",’F’},{2,"BB",’M’},{3,"CC",’M’}};
int n;
n=fun(W);
printf("n=%d\n",n);
}
13、在printf格式字符中,只能输出一个字符的格式字符是________ ;
用于输出字符串的格式字符是________ ;
以小数形式输出实数的格式字符是________ ;
以标准指数形式输出实数的格式字符是______。
14、在c语言中,用转义字符 \\ 表示______________。答题提示:双引号/单引号/反斜线/横向跳格/回车换行
15、编译预处理包括宏定义、______、条件编译等。
16、若有"int a[3][2]={{1,2},{3},{4,5}};
",则a[0][1]的值是_____。
17、下列程序段的运行结果是_____。
struct student
{
long num;
char name[20];
char sex;
float score;
}
a={1021103,"jiang ping",'m',85.5};
main( )
{
printf("%.2f\n",a.score);
}
18、在c语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是________。 我的答案: break
19、在c语言中,实参和形参之间的数据传递是【1】向的值传递。
20、执行下面的程序段后,*p等于【1】。
int a[5]={1,3,5,7,9},*p=a; p++;
21、字母'a'的ascii码值为多少()
22、如果一个变量要在一个程序中的所有函数都能共享,则应该定义成为________。
23、设有变量定义: int a=10,c=9;
则表达式(--a!=c++)?--a:++c 的值是________。
24、以下程序的输出结果是________。
main()
{
int x=5,y=6;
printf("%da%d",x――,――y);
}
25、若定义了int a[10],将数组元素中最后一个元素"赋值为10"语句是________。
26、程序运行结果是________。
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]);
}
27、输入求数组有几个元素的语句(arr,size)
28、|x|<10,写作程序为
29、在c语言中,标识符是由( )、数字、下划线组成的。
30、从文件读入一行,读取字符包括空格,使用函数________。
31、下面程序的功能是统计正整数的各位数字中零的个数,并求各位数字中的最大者。请分析程序填空。
#include<stdio.h>
main()
{
int n,count,max,t;
count=max=0;
scanf("%d",&n);
do
{
t= 【1】________;
if(t==0) ++count;
else if(max<t) 【2】________;
n/=10;
}
while(n);
printf("count=%d,max=%d",count,max);
}
32、下面程序的运行结果是________。
main()
{
int a[5][5],i,j,n=1;
for(i=0;i<5;i++)for(j=0;j<5;j++)a[i][j]=n++;
printf("the result is:\n");
for(i=0;i<5;i++)
{
for(j=0;j<=i;j++)printf("%4d",a[i][j]);
printf("\n");
}
}
33、c 语言规定,可执行程序的开始执行点是________。
34、以下程序的运行结果是_____________。
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);
}
35、下面程序的运行结果是________。
main()
{
int i,j,a[2][3]={{2,4,6},{8,10,12}};
printf("the original array is:\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)printf("%4d",a[i][j]);
printf("\n");
}
printf("\nthe result is:\n");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)printf("%4d",a[j][i]);
printf("\n");
}
}
36、以下程序输出的结果是 ________。
int ff(int n)
{
static int f=l;
f=f*n;
return f;
}
main()
{
int i;
for(i=1;i<=5;i++) printf("%d\n",ff(i));
}
37、设有以下程序:
main()
{
int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{
n1=n2 ;
n2=n2/10;
printf("%d ",n1);
}
}
程序运行后,如果从键盘上输入1298;
则输出结果为________。
38、函数体用{开始,用____结束。
39、若有定义:double x[3][5];则数组中列下标的上限为_____ 。
40、一个C程序有且仅有一个______函数。