《C语言程序设计》模拟试卷七
一、填空题。(每空2分,共30分) 1.下述算术表达式的结果值是___ __。 (int) (13.7+25.6)/4%4
则执行下述printf语句的输出结果是___ _。 printf(\5.执行下述程序的输出结果是_____ ______。 if (x[i]==y[i]) printf(\ else i++; #include
int strlength(char a[],char b[]) {
int num=0,n=0; 2.设整型变量value的值为20。执行下述程序段的输出结果是 。 if (value>=3) if (value>100)
printf(\ else
printf(\3.对于下述程序段 int b,c; float a;
scanf(\若欲使a、b、c的值分别为5.0、4、3,则应按如下形式输入数据:
_ __ 。 4.设int类型变量占内存两个字节,今有变量说明语句 int a=20;
#include
int arr[10],i,k=0; for (i=0;i<10;i++) arr[i]=i; for (i=1;i<4;i++) k+=arr[i]+i/2; printf(\ }
6.执行下述程序的输出结果是__ _。 #include
int i=0;
char x[]=\ char y[]=\
while (x[i]!='\\0'&&y[i]!='\\0')
printf(\ }
7.下述函数定义的功能是:把两个整数指针所指的存储单元中的内容进行交换。请填空。 void
exchange( ) { int t; t=*y; *y=*x; *x=t; }
8.设有如下变量说明语句 int
a[8]={44,55,12,42,94,18,6,67},*p=a; 则通过指针变量p引用值为18的表达式是____ 或 ____。 9.执行下述程序
while (*(a+num)!='\\0') num++; while (b[n]) {
*(a+num)=b[n]; num++; n++; }
return (num); } main() { char
str1[81],str2[81],*p1=str1,*p2=str2; gets(p1); gets(p2);
printf(\ }
若从键盘输入 qwerty abcd
则输出结果是____ ___。
10.下面的函数定义是一个求阶乘的递归调用函数。假定n≠0。请填空。 long fac(int n) { long f; if (n==0) f=1; else
f=___ ____; return (f); }
11.下述程序的功能是:输入n值,输出高度为n的、由字符'*'组成的直角三角形,例如当n=4时的输出图形如下(最后一行前面没有空格): * ** *** ****
请填空。
#include
if (n>0) {
printf(\ func(c,n-1); } } main() {
int i,n; scanf(\ for (i=1;i<=n;i++) {
____ ___; printf(\ } }
12.执行下述程序的输出结果
是 。
#include
#define COMP struct complex COMP {
float re; float im; };
void plus(COMP *z1,COMP *z2,COMP *z3) {
z3->re=z1->re+z2->re; z3->im=z1->im+z2->im; } main() {
COMP a,b,c; a.re=7.0; a.im=4.0; b.re=-2.0; b.im=5.5; plus(&a,&b,&c); printf(\i\\n\
}
13.以下程序在运行时输入 10 20 30
则输出结果是___ __。 #include
int func(int a,int b,int c) {
return (a+b+c); } main() {
int x,y,z;
printf(\ scanf(\ z=func(x,x+y,func(x,x+y,z)); printf(\ }
14.下面的程序把从终端读入的文本(用字符'@'作为文本结束标志)逐个字符复制到一个当前磁盘目录下名为bi.dat的新文本文件中。请填空。
#include
#include
FILE *fp; char ch;
if ((fp=fopen(\ {
printf(\bi.dat.\\n\ exit(0); }
while ((ch=getchar())!='@') ;
fclose (fp); }
15. 执行下述程序的输出结果是 。
#include \int abc(int u,int v); int abc(int u,int v) { int w;
while(v)
{ w=u%v; u=v; v=w ;} return u; } main()
{ int a=24,b=16,c; c=abc(a,b); printf(\}
二、单项选择题。(每题1分,共20分) 1.在计算机上可以直接运行的程序是写【 】 A.高级语言程序 B.汇编语言程序 C.机器语言程序 D.C语言源程序 2.下列符号串中,合法的C语言标识将是【 】
A._121 B.121_ C.a.121
D.#121
3.下列符号串中,合法的十进制整型常量是【 】
A.09876 B.0x9876 C.9.876*e4 D.-9876
4.设有关变量已经正确定义并赋值,则下列表达式中符合C语言语法规则的是【 】 A.a_=\\12 B.a_1=a_2+=12 C.int13.5%2 D.a=b+7=C-2
5.若整型变量x的值为8,则下列表达式中值为1的表达式是【 】
A.x+=x-=x=x B.x%=x-1 C.x%=x%=3 D.x/=x+x
6.字符串\的长度是【 】 A.7 B.9 C.15 D.16 7.设有定义语句“int a=10,*p=&a;”,则表达式“a十*p”的值是【 】
A.10 B.20 C.100 D.语法出错 8.若有定义语句“int x,*p=&x,**ppx=&px;”,则下列表达式中错误的是【 】 A.x=*px B.x=**ppx C.px=&ppx D.*ppx=&x
9.如果某个函数在定义时,省略了存储类型,则默认的存储类型是【 】
A.auto B.void C.extern D.static
10.能正确定义一个用来指向打开文件的文件型指针变量fp的语句是【 】
A.file fp; B.file *fp; C.FILE fp; D.FILE *fp;
11.函数fopen()的返回值不能是【 】 A.NULL B.O C.1 D.某个内存地址
12.以只写方式打开一个二进制文件,应选择的文件操作方式是【 】 A.\+\+\
13.设有定义语句“char ch='\77';”,则下列说法中正确的是【 】
A.ch中含有1个字符 B.ch中含有2个字符
C.ch中含有3个字符 D.语法出错 14.设有函数调用语句“f(x1,x1+x2,(x1,
x2));”,正确的说法是【 】
A.调用的实际参数是2个 B.调用的实际参数是3个
C.调用的实际参数是4个 D.调用时会出现语法错误。
15.计算平方数时不可能引起二义性的宏定义A.若用值传递方式,则形式参数不予分配内存 CCC abc; case 是【 】
A.#define SOR(x)x*x B.#define SQR(x)(x)*(x)
C.# define SQR(x)(x*x) D.# define SQR(x)((x)*(x))
16.执行下列程序段后,x的位是【 】 int a=8,b=7,c=6,x=1;
if(a>6)if(b>7)if(c>8)x=2;else x=3;
A.O B.1 C.2 D.3
17.执行下列程序段后,变量y的值为【 】 int x[]={1,2,3,4},y,*p=&x[1]; y=(*--P)++;
A.1 B.2 C.3 D.4
18.能正确表达逻辑关系“-1<x<1并且-1<y<1”的表达式是【 】 A.(-1<x<1)&&(-1<y<1) B.(-1<x<1)&(-1<y<1)
C.((-1<x)||(x<1))&&((-1<y)||( y<1)) D.(-1<x)&&(x<1)&&(-1<y)&&(y<1) 19.函数调用时,下列说法中不正确的是【 】
B.实际参数和形式参数可以同名
C.主调函数和被调用函数可以不在同一个文件中
D.函数间传送数据可以使用外部全局变量 20.下列关于结构型变量的定义语句中,错误的是【 】
A. typedef struct CCC B. #define GGG struct
{ char name[20];GGG CCC { char name[20];
int age; int age;
}GGG; }; GGG abc ; GGG CCC abc;
C.struct D. struct { char name[20]; { char name[20];
int age; int age;
}ccc; }abc;
三、程序分析题(每题8分,共32分) 1.写出执行下述程序的输出结果。 #include
int a=2,b=4,c=5; switch (a>0) {
int a=2,b=4,c=5; switch (a>0) {
case 1:switch (b=b>>2) {
case 1:printf(\ case 0:printf(\ default:printf(\ }
case 0:swith (c==5) {
0:printf(\ case 1:printf(\
dafault:printf(\ }
default:printf(\ }
printf(\ }
2.写出执行下述程序的输出结果。 #include
int i,j,cent;
for (cent=1;cent<=N;cent++) {
for (i=1;i<=N-cent+5;i++) printf(\ for (j=1;i<=cent;j++)
相关推荐: