printf("%d,",*p);
}
程序运行后的输出结果是()
A)1,2,3,4,5,6,7,8,9,0,B)2,3,4,5,6,7,8,9,10,1,
C)0,1,2,3,4,5,6,7,8,9,D)1,1,1,1,1,1,1,1,1,,1,
39、设有以下函数:
void fun(int n,char *s){……}
则下面对函数指针的定义和赋值均正确的是()
A)void(*pf)();pf=fun;B)void*pf();pf=fun;
C)void*pf();*pf=fun;D)void(*pf)(int,char);pf=&fun;
40、下列函数的功能是()
fun(char *a,char *b)
{while((*b=*a)!
='\0'){a++;b++;} }
A)将a所指字符串赋给b所指空间
B)使指针b指向a所指字符串
C)将a所指字符串和b所指字符串进行比较
D)检查a和b所指字符串中是否有'\0'
41、有以下程序
#include
main()
{ intm=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
}程序运行后的输出结果是()
A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2
42、设有定义语句int(*f)(int);,则以下叙述正确的是()
A)f是基类型为int的指针变量
B)f是指向函数的指针变量,该函数具有一个int类型的形参
C)f是指向int类型一维数组的指针变量
D)f是函数名,该函数的返回值是基类型为int类型的地址
43、在说明一个结构体变量时,系统分配给它的存储空间是()
A)该结构体中第一个成员所需的存储空间
B)该结构体中最后一个成员所需的存储空间
C)该结构体中占用最大存储空间的成员所需的存储空间
D)该结构体中所有成员所需存储空间的总和
44、如有以下定义:
structdate{
intyear;
intmonth;
intday;};
structworklist{
charname[20];
charsex;
structdatebirthday;}person;
对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是()
A)year=1985;B)birthday.year=1985;
C)person.year=1985;D)person.birthday.year=1985;
45、若有以下说明和定义
uniondt
{inta;charb;doublec;}data;
以下叙述中错误的是()
A)data的每个成员起始地址都相同
B)变量data所占内存字节数与成员c所占字节数相等
C)程序段:
data.a=5;printf("%f",data.c);输出结果为5.000000
D)data可以作为函数的实参
46、设有如下说明
typedefstructST
{longa;
intb;
charc[2];
}NEW;
则下面叙述中正确的是()
A)以上的说明形式非法 B)ST是一个结构体类型
C)NEW是一个结构体类型 D)NEW是一个结构体变量
47、下列关于结构型、共用型、枚举型的定义语句中,正确的是()
A)structss{intx}B)unionuu{intx;}xx=5;
C)enumee{intx;};D)struct{intx;};
48、整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是()
A)x||yB)x|y
C)x&yD)x
y
49、设inta=2;表达式(a<<2)/(a>>1)的值是()
A)0B)2C)4D)8
50、以下叙述中错误的是()
A)gets函数用于从终端读入字符串
B)getchar函数用于从磁盘文件读入字符
C)fputs函数用于把字符串输出到文件
D)fwrite函数用于以二进制形式输出数据到文件
51、以下叙述中错误的是()
A)C语言中对二进制文件的访问速度比文本文件快
B)C语言中,随机文件以二进制代码形式存储数据
C)语句FILEfp;定义了一个名为fp的文件指针
D)C语言中的文本文件以ASCII码形式存储数据
51、有以下程序
#include"stdio.h"
voidWriteStr(char*fn,char*str)
{FILE*fp;
fp=fopen(fn,"W");
fputs(str,fp);
fclose(fp);}
main()
{WriteStr("t1.dat","start");
WriteStr("t1.dat","end");
}程序运行后,文件t1.dat中的内容是()
A)start B)end C)startend D)endrt
52、若要打开名为abc.txt的文本文件进行追加操作,符合此要求的函数调用是()
A)fopen("abc.txt","r");B)fopen("abc.txt","w");
C)fopen("abc.txt","a"); D)fopen("abc.txt","rb");
53、在C程序中,可把整型数以二进制形式存放到文件中的函数是()
A)fprintf函数 B)fread函数
C)fwrite函数 D)fputc函数
二、程序(段)填空题
1、下列是评分统计程序,一共有8个评委打分,统计最后得分时,去掉一个最高分和一个最低分,其余6个分数的平均分即为最后得分,请填空。
#include
main()
{floatave,max,min,x[8]={9.2,9.5,9.8,7.4,8.5,9.1,9.3,8.8};
inti;
max=min=①__x[0]____________;
for(i=1;i<8;i++)
{if(maxmax=x[i];
if(②__min>x[i]__________)
min=x[i];}
for(i=0;i<8;i++)
ave+=x[i];
ave=③_(ave-min-max)/6_____________;
printf("average=%f\n",ave);
}
2、以下程序实现:
从键盘输入一个字符,若输入为小写字母,则将小写字母变为大写字母并输出,其它字符不予处理。
请填空。
#include
voidmain()
{
charc;
printf("inputaword\n");
scanf("%c",①____&c_____);
if(②__c>='a'&&c<='z'____________)//判断是否是小写字母
printf("%c\n",③__c-32______);//若是小写字母,则转化为大写字母输出
}
3、以下程序用来判断指定文件是否能正常打开,请填空。
#include
Main()
{FILE*fp;
if(((fp=fopen("test.txt","r"))==①NULL))
printf("未能打开文件!
\n");
else
printf("文件打开成功!
\n");}
4、下列程序的功能是:
求1+1/2+1/3+⋯⋯+1/n的值,不要改变与输入输出有关的语句。
main()
{inti,n;
floatsum;
scanf("%d",&n);
①sum=0;
for(②i=1;③i<=n;i++)
sum=④sum+1.0/i;
printf("%.3f\n",sum);
}
三、阅读程序并写出运行结果。
1、有以下程序
#include
main()
{
inta=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!
=2||c--!
=3)
printf("%d,%d,%d\n",a,b,c);
else
printf("%d,%d,%d\n",a,b,c);
else
printf("%d,%d,%d\n",a,b,c);
}
程序运行后的输出结果是。
2、有一下程序
#include
main()
{chargrade;
scanf("%c",&grade);
switch(grade)
{case'A':
printf(">=85");
case'B':
case'C':
printf(">=60");break;
case'D':
printf("<60");
default:
printf("error");}
}
若输入A,该程序的输出结果为。
3、有以下程序
#include
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}程序运行后的输出结果是。
4、有一下程序
#include
main()
{
longf,f1=1,f2=1;
inti;
printf("%ld\t%ld\t",f1,f2);
for(i=0;i<3;i++)
{f=f1+f2;
printf("%ld\t",f);
f1=f2;
f2=f;
}
}
程序运行后的输出结果是。
5、有一下程序
#include
main()
{intk;
for(k=0;k<5;++k)
{if(k==3)
break;
printf("%d",k);}
}
程序运行后的输出结果是。
6、有一下程序
#include
main()
{
inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)
continue;
x++;
}
x++;
}
printf(“x=%d\n”,x);
}
程序运行后的输出结果是。
7、有一下程序
#include
main()
{chara[]={'h','e','l','\0','l','o','\0'};
printf("%s",a);
}
该程序的输出结果为。
8、有一下程序
#include
main()
{
inti,t[][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++)
printf("%d",t[2-i][i]);
}
该程序的输出结果为。
9、有一下程序
#include
intfun(int,int);
main()
{inta=10,b=9,c;
c=fun(a,b);
printf("%d",c);
}
intfun(intx,inty)
{intz;
z=x>y?
x:
y;
return(z);
}
程序运行后的输出结果是。
10、有一下程序
#include
intswap(int,int);
main()
{intx=7,y=11;
swap(x,y);
printf("x=%d,y=%d\n",x,y);
}
intswap(inta,intb)
{
inttemp;
temp=a;a=b;b=temp;
}程序运行后的输出结果是。
11、有一下程序
#include
voidf(int*p,int*q);
main()
{intm=1,n=2,*r=&m;
f(r,&n);printf("%d,%d",m,n);}
voidf(int*p,int*q)
{p=p+1;*q=*q+1;}程序运行后的输出结果是。
12、有一下程序
#include
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)
p[i]=i+1;
printf("%d\n",a[1][2]);
}该程序执行后的输出结果为是。
四、判断题(对的填√,错的填×)
1、C程序中的注释只能出现在程序的开始位置和语句的后面。
()
2、在标准C语言中,语句必须以“;”结束。
()
3、关系运算符的优先级高于逻辑运算符。
()
4、在标准C语言中,数组的下标必须是常量,不允许是表达式。
()
5、函数的定义和调用都是可以嵌套的。
()
6、对于定义int*p;则*p是指针变量名。
()
7、C语言中必须用main作为主函数名,程序将从此开始执行,在此结束。
()
8、使用putchar函数时,必须在之前包含头文件stdio.h。
()
9、在if_else语句中,配对规则是else总是与最近的未配对的if配对。
()
10、在标准C语言中,二维数组在内存中的存放次序是以行序为主序。
()
11、C语言中函数声明要以“;”结束。
()
12、内存单元的地址与内存单元中的内容是两个相同的内容。
()
13、若要处理含有不同类型的相关数据,应自定义结构体类型。
()
14、共用体变量中的各成员的首地址是不一样的。
()
15、文件由结构序列组成,可以构成二进制文件或文本文件。
()
16、文件使用方式“wb+”的含义是为读写打开一个二进制文件。
()
17、C程序是由函数构成的。
()
18、在标准C语言中,语句必须以“;”结束。
()
19、关系运算符的优先级低于逻辑运算符。
()
20、在标准C语言中,数组的下标必须是常量,不允许是表达式。
()
21、