南京信息工程大学滨江学院C语言期末试卷

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2010 ─ 2011 学年第二学期
C语言程序设计课程试卷
一、选择题(下列每题中只有一个正确答案,每题1分,共20分)
1、C语言程序的基本单位。

(A)程序行(B)语句(C)函数(D)字符
2、设有语句“ int a=3; ” ,则执行语句“ a+=a-=a*a; ”以后变量a的值是。

(A)3 (B)0 (C)9 (D)-12
3、合法的C语言字符常量是。

(A)…t‟(B)“A”(C)65 (D)A
4、以下程序的输出结果是。

main()
{ int a=12,b=12;
printf(“%d %d\n”,--a,++b);
}
(A)10 10 (B)12 12 (C)11 10 (D)11 13
5、若变量已正确定义,那么以下语句段的输出结果是________。

x=0;y=2;z=3;
switch(x)
{ case 0:switch(y==2)
{ casa 1:printf(“*”);break;
case 2:printf(“%”);break;
}
case 1:switch(z)
{ case 1:printf(“$”);
case 2:printf(“*”);break;
default:printf(“#”);
}
}
(A)%$ (B)#* (C)*# (D)**$
6、设实型变量为f1、f2、f3、f4的值分别为4,3,2,1;整型变量ml、m2的值为1。


达式“(ml=fl>f2)&&(m2=f3<f4)”的值是。

(A)0 (B)1 (C)2 (D)出错
7、执行下列程序后,i 的值是。

void main()
{ int i, x;
for(i=1, x=1;i<20; i++)
{if (x>=10) break;
if(x%2= =1)
{x+=5; continue; }
x-=3;

}
(A)4 (B) 5 (C)6 (D)7
8、对以下for循环,叙述正确的是。

for(x=0,y=0;(y!=123)&&(x<4); x++, y++);
(A)执行了3次(B)执行了4次(C)是无限循环(D)循环次数不定9、在定义int a[5][4]; 之后,对a的正确引用是。

(A)a[2][4] (B)a[5][0] (C)a[0][0] (D)a[0,0] 10、以下程序段的输出结果是。

char str[ ]=”ab\n\012\\\””; printf(“%d\n”,strlen(str));
(A)12 (B)6 (C) 4 (D) 3
11、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
(A)地址传递(B)单向值传递
(C)由实参传给形参,再由形参传回实参(D)传递方式由用户指定
12、C语言中,形参缺省的存储类别是
(A)auto(自动)(B)static(静态)
(C)register(寄存器)(D)extern(外部)
13、已知指针P的指向如下图所示,则执行语句“*P++;”后,表达式“*P”的值是。

(A)20 (B)30 (C)21 (D)31
14、以下程序的输出结果是 2 。

void sub(int x,int y,int *z)
{ *z=y-x;}
main()
{ int a,b,c;
sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);
printf(“%d,%d,%d\n”,a,b,c);
}
(A)5,2,3 (B)5,-2,-7 (C)-5,-12,-7 (D)-5,-12,-17 15、以下程序段的输出结果是。

char str[ ]=“ABCD”,*p=str;
printf(“%d\n”,*(p+4));
(A)68 (B)0 (C)字符D地址(D)不确定的值16、C语言中,从计算机的内存中将数据写入文件,称为_ _ _。

(A)输入(B)修改(C)输出(D)删除
17、若以“a+”方式打开一个已存在的文件,则以下叙述正确的是。

(A)文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作(B)文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作(C)文件打开时,原有文件内容不被删除,只可作写操作
(D)以上各种说法皆不正确
18、已知为year整型变量,不能使表达式“(year%4==0&&year%100!=0)||year%400==0 ”的
值为“真”的数据是。

(A)1998 (B)1992 (C)1996 (D)2000
19、比较两个字符串str1,str2(此处的str1和str2为两个字符数组名)是否相等的正确的
表达式为。

(A)if(str1=str2) … (B)if(str1==str2) …
(C)if(strcmp(str1,str2)=0) … (D)if(strcmp(str1,str2)==0) …
20、若c1,c2为char型变量,则为了使以下语句的输出为:a,b 正确的输入形式是。

scanf (“%c,%c”,&c1,&c2);
printf (“%c,%c”,c1,c2);
(A)a b (B)a,b (C)‟a‟ ‟b‟ (D)ab
二、填空题(每空1分,共20分)
1、若a为int型变量,则表达式“ ((a=4*5,a*2), a+6) ” 的值为。

2、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,
当输入负数时,结束输入,请填空。

main()
{ float x ,amax,amin;
scanf(“%f”,&x);
amax=x;amin=x;
while( )
{ if( ) amax=x;
if( ) amin=x;
scanf(“%f”,&x);
}
printf(“\n最高分=%f\n最低分=%f\n”,amax,amin);
}
3、下面程序的功能是将一个字符串按逆序存放,请填空。

#include <stdio.h>
#include <string.h>
void main( )
{ char st[50],m; int i,j; gets(st);
for( i=0,j=strlen(st); i< ; i++, j--)
{ m=st[i]; st[i]= st[j] ; =m; }
printf(“%s\n”,st);
}
4. 以下程序的输出结果是
double sub (double x ,double y ,double z )
{ y-=1.0; z=z+x ; return z ;}
void main ( )
{ double a=2.5, b=9.0;
printf (“%.2f\n ”,sub (b-a ,a ,a ));
}
5、 当定义一个以下类型的结构体变量时,系统分配给它的内存是 字节。

struct student
{ char name[10];
float height;
}
6、下面程序的输出结果是 。

void main()
{ static char str[]="beijing";
printf("%d\n",strlen(strcpy(str ,"china")));
printf("%s",str);
}
7、下面程序是用来统计文件中字符的个数,其中文件以只读的方式打开,请填空。

#include <stdio.h>
void main()
{ FIlE *fp;
long num=0;
if((fp=fopen(“fname”,” ”))==Null) //文件以只读的方式打开
{ printf(“Can‟t open file!\n”); exit(0); }
while( !feof(fp) ) //是否到文件末尾
{ fgetc( ); num++ }
printf(“num=%d \n”,num);
fclose(fp);
}
8、设有int a=10,*p =&a; 则 *p+1的值是 [10] 。

9、数学式子xy ab
3 写成C 语言表达式是 [4]
10、下面程序的功能对3个整数进行从大到小排序,请补充完整。

#include<stdio.h>
void main()
{
float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if ( a [1] b)
{ t=a;a=b;b=t; }
if ( [2] )
{ t=a;a=c;c=t; }
if (b-c <0)
{ [3] ;b=c; [4] ; }
printf("%5.2f,%5.2f,%5.2f\n",a,b,c);
}
11、输出100~1000范围内的所有“水仙花数”。

所谓“水仙花数”是一个3位正整数,其各
位数字的立方和等于该数本身。

完善下面程序。

#include<stdio.h>
void main()
{ int i,j,k,n; //i,j,k分别存放三位正整数的从百位到个位上的数 for(n=100;n<1000;n++)
{ i= ;
j=n/10-i*10;
k=n%10;
if ( n== )
printf("%4d",n);
}
printf("\n");
}
12、若int a=2,b=4: 则表达式“ a > b ? a : b ”的值为。

13、C语言作为结构化程序设计语言,具有、选择结构和循环结构3种基本结
构。

三、程序设计(每题10分,共60分)
1、有3个整数a、b、c,由键盘输入,输出其中最大的数。

2、通过键盘输入一行字符串,统计其中字母、数字、空格和其它字符的个数。

3、求一个3×3的整型矩阵对角线元素之和。

4、写一个判断素数的函数int prime (int x),其实现如下功能:如果x是素数,则该函
数返回1;否则,该函数返回0。

在main函数中实现如下功能:声明一个整型变量n,用于保存键盘输入的一个整数,用n作为实参调用prime函数,根据其返回值,输出是否为素数的信息。

5、写一函数,求一个字符串的长度int length (char *p) ,实现如下功能:返回指针变
量p所指向的字符串的长度。

在main函数中实现如下功能:声明一个字符数组str[20],用于保存键盘输入的字符串,用str数组作为实参调用length函数,获取返回值,从而输出该字符串的长度。

6、编程实现,求表达式:1-3+5-7+9-11……,前20项之和。

相关文档
最新文档