南京艺术学院历年C语言程序设计

本试卷为南京艺术学院历年C语言程序设计,题目包括:填空题。

本卷包括如下题型:

一、填空题

C语言程序设计

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

1、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入请填空________。
main()
{
float x,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while( ________ )
{
if(x>amax) amax=x;
if( ________ ) amin=x;
scanf("%f",&x);
}
printf("\namax=%f\namin=%f\n",amax,amin);
}
2、表达式 2.8 + 3/4 =________。
3、int x=6, y=7;
printf("%d,",x++);
printf("%d\n",++y);
程序的输出结果是________。
4、c语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为________。
5、以下程序输出x,y,z三个数中的最小值,请填空使程序完整___________。
main ()
{
int x=4,y=5,z=8 ;
int u,v;
u = x < y ?_______;
v = u < z ?_______;
printf ("%d",v);
}
6、仅由顺序、选择(分支)和重复(循环)结构构成的程序是________程序。
7、已知字符a的acsii码值为65,以下语句的输出结果是 ________
char ch=’b’;
printf("%c %d\n",ch,ch);
8、下面rotate函数的功能是:将n行n列的矩阵A转置为A’,例如: 1 2 3 4 1 5 9 13 5 6 7 8 2 6 10 14 当 A= 9 10 11 12 则 A’= 3 7 11 15 13 14 15 16 4 8 12 16 请填空
#define N 4
void rotate(int a[][N])
{
int i,j,t;
for(i=0;i<N;i++) for(j=0; ________;j++)
{
t=a[i][j];
________;
a[j][i]=t;
}
}
9、以下程序的输出结果是______ 。
#include <stdio.h>
main()
{
int i;
for(i=a;j<f;i++,i++) printf("%c",i-‘a’+’a’);
printf("\n");
}
10、下面程序段的运行结果是________.
int i=1,s=3;
do
{
s+=i++;
if(s%7==0)continue;
else ++i;
}
while(s<15);
printf("%d",i);
11、在c语言中,假使x为单精度实型变量,如果我们采用printf("格式控制",x)格式输出x,那么"格式控制"具体表示为"__"。
12、有以下程序
#include <string.h>
main()
{
char a[]={'a','b','c','d','e','f','\0'};
int j;
j=strlen(a);
printf("%d\n",j);
}
程序运行后的输出结果是______。
13、下列程序段的运行结果是_____。#define MAX(x , y) x>y? x : y
main( )
{
int a , b , max;
A=5, b=6;
Max=MAX(a,b);
printf("max=%d\n",max);
}
14、宏定义必须写在______之外
15、在vc++编译环境下,一个双精度型变量所占字节数是________。
16、若有定义:int a=5,b=2,c=1; 则表达式a-b<c||b==c的值是________。
17、以下程序运行后的输出结果是 ________
#include <stdio.h>
main()
{
int a=1,b=7;
do
{
b=b/2;
a+=b;
}
while (b>1);
printf("%d\n",a);
}
18、以下程序的输出结果是 ________。
#include<stdio.h>
main()
{
int a[5]={2,4,6,8,10}, *p;
p=a;
p++;
printf("%d",*p);
}
19、在c语言中,用转义字符 \" 表示________。答题提示:双引号/单引号/反斜线/横向跳格/回车换行
20、在c语言中,若确实不要求返回函数值,则应将函数定义为( )类型。
21、写出下列程序的运行结果。
main()
{
int n;
for(n=3; n<=10; n++)
{
if(n%6==0) break;
printf("%d",n);
}
}
22、写出下列程序的运行结果。
#include "stdio.h"
main()
{
int a[]={1,2,3,-4,5};
int m,n,*p;
p=&a[0];
m=*(p+1);
n=*(p+4);
printf("%d %d %d ",*p,m,n);
}
23、#include <stdio.h>
void main()
{
int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for (i=1;i<3;i++) for (j=0;j<i;j++) s+=a[i][j];
printf("%d\n",s);
}
24、若定义了int a[10],将数组元素中最后一个元素"赋值为10"语句是________。
25、定义二维数组int a[3][5];
,那么该数组中的第6个元素的访问形式为 ______。27. 在程序运行过程中,其值能被改变的量称为________。
26、若有如下结构体说明:
struct stru
{
int a, b;
char c;
double d;
};
现在定义t数组,要求t数组的每个元素为该结构体类型,请填空:________stru t[20];
27、输入求数组有几个元素的语句(arr,size)
28、c语言的源程序拓展名为()编译后生成() 链接后生成()
29、从文件读入一行,读取字符包括空格,使用函数________。
30、在c 语言中的实型变量分为两种类型,它们是________和________。
31、若有定义:double x[3][5];
则x 数组中行下标的下限为【1】,列下标的上限为【2】。
32、下面程序的功能是检查一个二维数组是否对称(即对所有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");
}
33、在c 语言中,一个函数一般由两个部分组成,它们是【1】和【2】。
34、以下程序运行后的输出结果是 ________
#include <stdio.h>
main()
{
int x=20;
printf("%d ",0<x<20);
printf("%d\n",0<x&&x<20);
}
35、请补充main()函数,亥函数的功能是求方程ax2+bx+ e=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式(disc=b*b-4*a*c)小于0,则要求重新输入a、b、c的值。 例如,当a=1,b=2,c=1时,方程的两个根分别是:x1 =-1.00,x2=-1.00。 注意:部分源程序给出如下。 请勿改动函数中的其他任何内容,仅在横线上填入所编写的若干表达式或语旬。 试题程序:
void main()
{
double a,b,c,x1,x2,disc;
do
{
printf("input a,b,c:");
scanf("%1f,%1f,%1f",&a,&b,&c);
disc=b*b一4*a*c;
if(disc<0)
printf("disc=%1f\n input again!\n",disc);
}
while( ________);
printf("****The result****\n");
x1=(-b+ ________ (disc))/(2*a);
x2=(-b- ________(disc))/(2*a);
printf("\nx1=%6.21f\nx2=%6.21f\n",x1,x2);
}
36、int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b的值为______。
37、若有定义:double x[3][5];则数组中列下标的上限为_____ 。
38、在C语言的表达式中,x=x+5 用复合运算符可以写成______。
39、C标准库函数中,字符串的处理函数包含在______头文件中,数学函数包含在math.h头文件中。
40、在C语言中,以______作为字符串结束标志。