西北政法大学C语言复习题

本试卷为西北政法大学C语言复习题,题目包括:填空题。

本卷包括如下题型:

一、填空题

C语言复习题

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

1、求主次对角线之和。
main()
{
static int a[ ][3]={9,7,5,1,2,4,6,8};
int i,j,s1=0,s2=0;
for(i=0;i<3;i++) for(j=0;j<3;j++)
{
if( ________ ) s1=s1+a[i][j];
if( ________ ) s2=s2+a[i][j];
}
printf("%d\n%d\n",s1,s2);
}
2、c语言提供的三种逻辑运算符是________、________、________。
3、表达式a=3*5,a*4的值是________。
4、已知字母a的ascii码为65。以下程序运行后的输出结果是 ________ 。
main()
{
char a, b;
a='a'+'5'-'3';
b=a+'6'-'2' ;
printf("%d %c\n", a, b);
}
5、以下程序运行后的输出结果是 ________ 。
char *ss(char *s)
{
char *p, t;
p=s+1;
t=*s;
while(*p)
{
*(p-1) = *p;
p++;
}
*(p-1)=t;
return s;
}
main()
{
char *p, str[10]="abcdefgh";
p = ss(str) ;
printf("%s\n",p);
}
6、以下程序的功能是输入任意整数给n后,输出n行由大写字母a开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下: a b c d e f g h i j k l m n o 请填空完成该程序。
main()
{
int i,j,n;
char ch=′a′;
scanf("%d",&n);
if(n<11)
{
for(i=1;i<=n;i++)
{
for(j=1; j<=n-i+1;j++)
{
printf("%2c",ch);
________;
}
________;
}
}
else printf("n is too large!\n") printf("\n");
}
7、函数fun的功能是计算xn double fun(double x,int n)
{
int i;
double y=1;
for(i=1;i<=n;i++) y=y*x;
return y;
}
主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算: m=a4+b4-(a+b)3。实现这一计算的函数调用语句为 ________。
8、已有定义int a;
floatb,x;
char c1,c2;
为使a=3,b=6.5,x=12.6,c1=’a’,c2=’a’正确的函数调用语句是______________,输入数据的方式是_________________。
9、c语言中对文件读写之前必须先打开文件,文件的打开是通过调用________函数来实现。
10、字符串函数___________用于把一个字符串写入指定的磁盘文件中。
11、在c语言中除了使用c提供的标准类型名(如int、char等)外,还可以用_________声明新的类型名来代替已有的类型名。
12、数组 int a[3][3]; 共定义了 ________ 个数组元素。
13、实型常量有两种表示方法:小数形式和【1】形式。
14、若有定义:int a=3; 表达式a/2.0+'b'-'a'的值是【1】。
15、以下函数值的类型是【1】。
fun (float x)
{
float y;
y= 3*x-4;
return y;
}
16、在c语言中,以______开头的常量代表的是八进制数。
17、已知char str[]="student",则strlen(str)的值为________。
18、下列程序段的运行结果是________。
char s1[20]="abcdef", s2[5]="abc";
strcpy(s1,s2);
printf("%c", s1[4]);
19、下列程序段的运行结果是________。
main()
{
int i=1,s=0;
for( ; ; )
{
s=s+i ;
i++;
if(i>4) break ;
}
printf("%d\n",s);
}
20、以下程序功能是:借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。
#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=________;
printf("index=%d\n",s-a);
}
21、下列程序段的运行结果是_____。
#define sub(x , y) x-y
main( )
{
int a , b , s;
A=5, b=6;
S=sub(a,b);
printf("s=%d\n" , s);
}
22、在c语言中,用转义字符 \" 表示________。答题提示:双引号/单引号/反斜线/横向跳格/回车换行
23、在c语言中,若确实不要求返回函数值,则应将函数定义为( )类型。
24、以下程序的运行结果是________。
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;
}
25、写出下列程序的运行结果。
main()
{
int n;
for(n=3; n<=10; n++)
{
if(n%6==0) break;
printf("%d",n);
}
}
26、定义二维数组int a[3][5];
,那么该数组中的第6个元素的访问形式为 ______。27. 在程序运行过程中,其值能被改变的量称为________。
27、对于文件末尾检测函数feof,如果文件指针已到文件末尾,则函数返回值是________。
28、输入求数组有几个元素的语句(arr,size)
29、C语言替换字符的函数是什么?
30、下列程序段的运行结果是________。
#define MIN(x , y) x<y? x : y
main()
{
int a , b , min;
A=10, b=11;
Min=MIN(a,b);
printf("min=%d\n" , min);
}
31、一个c语言源程序由若干函数组成,其中至少应含有一个 ()
32、从文件读入一行,读取字符包括空格,使用函数________。
33、在c 语言中(以16 位pc 机为例),一个char 型数据在内存中所占的字节数为________;
一个int 型数据在内存中所占的字节数为________。
34、设c 语言中,一个int 型数据在内存中占2 各字节,则int型数据的取值范围为________。
35、下面程序的运行结果是________。
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");
}
}
36、下列给定程序中,函数proc()的功能是找出100~m(m 不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
#define M 1000 int proc(int*S.int n)
{
int i,j,k,a,b,c;
j=0;
for(i=100;i<N;I++)
{
k=n;
a=k%10;
k/=10;
b=k%10;
c=k/10;
if(a==b+c) s[j]=i;
}
return j;
}
void main()
{
int a[M],m,num=0,i;
do
{
printf("\nEnter m(<=1000):");
scanf("%d",&m);
}
while(m>1000);
num=proc(a,m);
printf("\n\nThe result:\n");
for(i=0;i<NUM;I++) printf("%5d",a[i]);
printf("\n\n");
}
37、以下程序运行后的输出结果是 ________
main()
{
int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++) for(j=i+1;j<3;j++) a[j][i]=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++) printf("%d ",a[i][j]);
printf("\n");
}
}
38、下面程序的输出结果是:
#include <stdio.h>
void add(int *p, int n)
{
int *pend = p + n;
for( ; p<pend; p++) *p += 10;
}
void main( )
{
int a[5]={1,2,3,4,5}, *q = a;
add(q, 5);
for(q=a; q < a+5; q++) printf("%4d", *q);
}
39、函数strlen("1234\0xy")的值为:______。
40、算术表达式 a=b+3 中, a、b 称为变量, 3 称为______量,=、+称为运算符。