z||1)
9.已知a=12,表达式a+=a-=a*=a的值为( )
A)A)144 B)-12 C)0 D)24
10.设有语句a=4;则执行语句a-=a+=a*a;后,变量a 的值是( )
A)4 B)0 C)20 D)16
11.设有int a=4,b=6;则表达式 a&b的值为( )
A)3 B)4 C)11 D)12
12.若有定义:
int x=3;double y; 则执行语句y=(double)x;后,变量x的数据类型为( )。
A)int B)char C)flaot D)double
13.若有定义double x,y; 则表达式x=1,y=x+3/2的值为( )。
A)1 B)2 C)2.0 D)2.5
14.若有定义int x,y,t; 则执行语句:
x=y=3,t=++x||++y;后,y的值为( )。
A)不定值 B)4 C) 3 D)1
15.若x、i、j和k都是int型变量,则计算下面表达式后,x的值为( )。
x=(i=4,j=16,k=32)
A) 4 B) 16 C) 32 D) 52
16.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( )。
A)7 B)8 C)6 D)2
17.已有定义double d,f;
数据的输入方式为:
3.45 1.2
根据定义和数据的输入方式,输入函数调用语句的形式为( )
A)scanf("%lf%lf",&d,&f)
B)scanf("%f%f",&d,&f)
C)scanf("3.2f%3.1f",&d,&f)
D)scanf("%3.2lf%3.1lf",&d,&f)
18.下面程序的输出是( )。
#include
void main()
{ int x=10,y=3;
printf(“%d\n”,y=x/y);
}
(A)0 (B)1 (C)3 (D)不确定的值
19.下面程序运行情况是( )。
#include
void main()
{ int x=3,y=0,z=0;
if (x=y+z)
printf(“****”);
else
printf(“####”);
}
(A)有语法错0不能通过编译 (B)输出****
(C)可以通过编译,但不能通过连接,因而不能运行 (D)输出####
20.以下程序的输出结果是( )。
#include
main()
{ int i=10,j=10;
printf("%d,%d",--i,j--);
}
(A) 11,10 (B) 9,10 (C) 010,9 (D) 10,9
21.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。
(A)缩排位置相同的if (B)在其之前未配对的if
(C)在其之前未配对的最近的if (D)同一行上的if
22.假定所有变量均已定义, ok1=1; ok2=2; ok3=3; x=15;
if(!
ok1) x--;
else if (ok2) if (ok3) x=3;
else x=4;
上面程序段运行后x的值是:
( )
A)14 B)4 C)15 D)3
23. 在C语言的if语句中,用作判断的表达式为( ).
A)关系表达式 B)逻辑表达式 C)算术表达式 D)任意表达式
24.下面的程序,描述的是( )
main()
{ int x=3;
do
{printf("%d\n",x-=2);}
while(!
(--x));
}
(A)输出的是1 (B)输出的是1和-2 (C)输出的是3和0 (D)是死循环
25.执行下面程序后,a的值是( )。
#include
void main ()
{ int a;
printf(“%d\n”,(a=3*5,a*4,a+5));
}
(A)65 (B)20 (C)15 (D)10
26.以下程序的输出结果是:
main ( )
{ int n = 4;
while (n--)printf ("%d",--n);
}
A)2 0 B)3 1 C)3 2 1 D)2 1 0
27.设int a=1,则执行完循环While(a++<5);a的值是:
A)6 B)5 C)1 D)-264
28.在下列for循环中,其循环次数是( )
for(x=1,y=0;(y!
=123)&&(x<4); x++);
A)4 B)3 C)1 D)无数多次
29.假定a和b为int型变量,则执行以下语句后b的值为( )
a=1;b=10;
do {b-=a;a++;}
while (b--<0);
(A)9 (B)-2 (C)-1 (D)8
30.如果有#define f(x,y) x+y及int a=2,b=3;则执行printf("%d",f(a,b)*f(a,b)) 后的值为( )。
(A)36 (B)25 (C)11 (D)13
31.若#include后面的文件名用双引号括起来,寻找被包含文件的方式是( )。
A) 先按系统设定的标准方式查找,再在当前目录中查找
B) 先在当前目录中查找,再按系统设定的标准方式查找
C) 只在当前目录中查找 D)只按系统设定的标准方式查找
32.执行下面的程序
#define SQR(X) X*X
main()
{ int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a); }
后,a的值是( )。
(A)10 (B)9 (C) 1 (D)0
33.下面程序的输出结果是( )
#include "stdio.h"
#define SUB(x,y) (x)*y
main( )
{int a=3,b=4;printf("%d\n",SUB(a,b+1));}
A)12 B)16 C)15 D)13
34.函数strcat(str1,str2)的功能是( )
A)将字符串str1连接到字符串str2之后 B)将字符串str2连接到字符串str1之后
C)将str2复制到字符串str1中。
D)将str1复制到字符串str2中。
35.若有定义:
char a[30]= “china\0\t\’\\”;则strlen(a)和sizeof(a)的值是( )。
(A) 30 30 (B) 5 30 (C) 13 30 (D) 5 13
36.下述程序的输出结果是( )。
#include"stdio.h"
void main()
{
int a[]={2,3,4,5,6,7,8,9};
int i,rt=1;
for(i=0;i<=3;i++)
rt*=x[i];;
printf("%d",x);
}
A) 120 B) 720 C) 24 D) 6
37.调用strlen("abcd\0ef\ng\0")的结果为( )。
(A) 4 (B) 5 (C) 8 (D) 10
38.C语言中,以下叙述的是( )。
A) 函数不能嵌套定义但可以嵌套调用 B) 函数可以嵌套定义也可以嵌套调用
C) 函数可以嵌套定义但不能嵌套调用 D) 函数不能嵌套定义也不能嵌套调用
39.C语言中,函数调用时若实参是数组名,则被调函数对应形参( )。
A) 可以是相应类型简单变量 B) 必须是相应类型的指针变量
C) 必须是相应类型数组名 D) 可以是相应类型的指针变量
40.在C语言中,函数默认的存储类型为( )。
A) auto B) registerC) static D) extern
41.已知函数的调用形式:
fread ( buffer , size , count , fp ) ; 其中buffer代表的是( )。
(A)一个整型变量,代表要读入的数据项总数(B)一个文件指针,指向要读的文件
(C)一个指针,指向要读入数据的存放地址(D)一个存储区, 存放要读的数据项
42.如果程序中有static char c; 则编译程序会对其自动设置初值为( )。
(A) ''\n'' (B) "\n" (C) 0 (D) ''\0''
43.C程序在( )可以使用表达式
A)函数内部 B)函数外部 C)程序的任何地方 D)变量出现的地方
44.有定义:
int x,*p1=&x, *p2;,则能使得p2也指向x的语句是( )。
A) *p2=&x; B) p2=p1;C) p2=*p1; D) p2=&p1;
45、C语言可以处理的文件类型是()。
A、文本文件和数据文件B、文本文件和二进制文件
C、数据文件和二进制文件D、都不对
46、以读写方式打开一个已存在的二进制文件file1,fopen函数的正确的调用方式是()。
A、FILE*FP;FP=fopen("r","file1");B、FILE*FP;FP=fopen("file1","r");
C、FILE*FP;FP=fopen("rb+","file1");D、FILE*FP;FP=fopen("file1","rb+");
47、设fp是文件指针,str是一个字符串变量,n是一个整数,向文件中输出字符串的正确格式是()。
A、fputs(str,fp);B、fputs(fp,str);
C、fputs(str,n,fp);D、fputs(fp,n,str);
48.有如下定义:
char *s1="AbCdE",*s2="aBcDe"; 则表达式strcmp(s1+1,s2+1) 的值是( )
A.零 B.负数 C.正数 D.非零值,无法肯定符号
49.在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是( )
A)fopen( ) B)fseek( ) C)fclose( ) D)rewind( )
50.在C语言中,的的结论是( )
A)对文件操作必须先关闭文件 B)对文件操作必须先打开文件
C)对文件操作顺序没有统一规定 D)以上都错
填空
1.输入3个单精度浮点数,输出最大值
#include
intmain()
{
____1____a,b,c,max;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
max=a;
else
max=b;
if(maxmax=c;
printf("%f",___2__);
}
2fun函数的功能是:
首先对a所指的N行N列的矩阵,找出各行中的最大的书,再求这N个最大值中的最小的那个数作为函数值返回。
#include
#defineN100
intfun(int(*a)[N])
{
introw,col,max,min;
for(row=0;row{
for(max=a[row][0],col=1;colif(____3___>max)
max=a[row][col];
if(row==0)
min=max;
else
if(max___4__min)
min=max;
}
returnmin;
}
3、*程序的功能是显示具有n个元素的数组s中的最大元素。
#include
#define__5___30
voidmain()
{
inti,a[N];
intfmax(ints[],intn);
for(i=0;iscanf("%d",&a[i]);
printf("%d\n",a[fmax(a,N)]);
}
int__6___(ints[],intn)
{
intk,p;
for(p=0,k=p;pif(s[p]>s[k])k=p;
return(k);
}
4.设一个二维数组a[5][3]存放五个人三门课的成绩。
再设一个一位数组v[3]存放所求得各分科平均成绩。
#include
voidmain()
{
inti,j,s=0,v[3],a[5][3];
printf("inputscore:
\n");
for(i-0;i<__7___;i++)
{
for(j=0;j<5;j++)
{
scanf("%d",&a[j][i])
s=s+a[j][i];
}
v[i]=___8___;
s=0;
}
printf("math:
%d,languag:
%d,ndbase:
%d",v[0],v[1],v[2]);
}
5.把100--200只见不能被3整除的书输出
#include
voidmain()
{
intn;
for(n=100;n<=200;n++)
{
if(n%__9___==0)
_____10_____;
printf("%4d",n);
}
}
6、*使用双重循环,输出下面的图形:
1
121
12321
1234321
12321
121
1
#include
voidmain()
{
inti,j;
for(i=1;i<=4;i++)
{
for(j=1;j<40-i;j++)
printf("");
for(j=1;j<=i;j++)
printf("%d",j);
for(j=___11___-1;j>0;j--)
printf("%d",j);
printf("\n");
}
for(i=3;i>=___12___;i--)
{
for(j=1;j<40-i;j++)
printf("");
for(j=1;j<=i;j++)
printf("%d",j);
for(j=i-1;j>0;j--)
printf("%d",j);
printf("\n");
}
}
7、*以下程序将数组a中的数据逆序存放。
#defineM8
#include
voidmain()
{
___13___a[M],i,j,t;
for(i=0;iscanf("%d",a[i]);
i=0;j=M-1;
while(i{
t=*(a+i);*(a+i)=*(a+j);*(a+j)=t;
__14___++;j--;
}
for(i=0;iprintf("%3d",*(a+i));
}
编程
*编写程序:
**求1000以内素数的平均值(1不是素数,保留小数点后三位)。
参考答案:
#include
#include
intmain()
{
inti,j,k,n=0,m=0;
for(i=1000;i>1;i--)
{k=sqrt(i);
for(j=2;j<=k;j++)
if(i%j==0)break;
if(j>k){n=n+i;m++;}
}
printf("%.3f\n",(double)n/m);
return0;
}
运行结果:
453.137
2.、* 编写程序:
* 先下载数据文件wj4.txt到自己的计算机中,然后编制程序,要求:
统计出该数据文件中从第51个到第10000个数据中奇数的个数。
参考答案:
#include
#include
intmain()
{inti=0,a[10000],s=0;
FILE*p;
p=fopen("D:
\\a\\wj4.txt","r");
for(i=0;i<10000;i++)
fscanf(p,"%d",&a[i]);
for(i=50;i<10000;i++)
if(a[i]%2!
=0)s++;
printf("%d\n",s);
fclose(p);
return0;
}
运行结果:
4959
C语言002
选择
1--5CAACB6--10DCDCB11--15BACCC16--20BACDB
21--25CDDBB26--30AABDC31--35BCDBA36--40AAADD
41--45CDCBB46--50DACDB
填空
1.int2.max
3.a[row][col]4.<
5.N6.fmax
7.38.s/5
9.310.continue
11.i12.1
13.int14.i