c语言题1.docx
《c语言题1.docx》由会员分享,可在线阅读,更多相关《c语言题1.docx(19页珍藏版)》请在冰豆网上搜索。
c语言题1
1.以下对C语言函数的描述中,正确的是(B).
A、C函数既可以嵌套定义又可以递归调用
B、C程序必须由一个或一个以上的函数组成
C、C程序中有调用关系的所有函数必须放在同一个程序文件中
D、函数必须有返回值,否则不能使用函数
2.用C语言编写的代码程序(B)
A、可立即执行
B、是一个源程序
C、经过编译解释才能执行
D、经过编译即可执行
3.以下字符中不是转义字符的是(A).
A、\c'
B、\t'
C、\\'
D、\n'
4.若有说明:
int*p,m=5,n;以下正确的程序段是(A).
A、p=&n;*p=m;
B、p=&n;scanf("%d",*p)
C、p=&n;scanf("%d",&p);
D、scanf("%d",&n);*p=n;
5.以下程序的运行结果是(A).
main()
{intn;
for(n=1;n<=10;n++)
{
if(n%3==0)continue;
printf("%d",n);
}
}
A、12457810
B、12
C、369
D、1234567890
6.有以下定义语句doublea,b;intw;longc;各变量已正确赋值,则下列选项中正确的表达式是(D)
A、w=a==b;
B、a=a+b=b++
C、w%((int)a+b)
D、(c+w)%(int)a
7.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句C2='A'+'6'-'3';后c2中的值是(A)
A、D
B、不确定的值
C、C
D、68
8.一个C语言程序是由(A).
A、函数组成
B、一个主程序和若干子程序组成
C、若干子程序组成
D、若干过程组成
9.C语言中用于结构化程序设计的三种基本结构是(A)
A、顺序结构、选择结构、循环结构
B、if、switch、break
C、if、for、continue
D、for、while、do-while
10.设以下变量均为int类型,则值不等于7的表达式是(D).
A、(y=6,y+1,x=y,x+1)
B、(x=y=6,x+y,y+1)
C、(x=y=6,x+y,x+1)
D、(x=6,x+1,y=6,x+y)
11.C语言能正确处理的指数是(B).
A、e-32
B、1.23e-5
C、4.5e-5.6
D、8.5e4288
12.逻辑运算符两侧运算对象的数据类型(B)
A、只能是0或非0正数
B、可以是任何类型的数据
C、只能是0或1
D、只能是整型或字符型数据
13.fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是(B).
A、答案B和C都正确
B、读或读写
C、只写
D、追加
14.下面的叙述中不正确的是(B)
A、宏名无类型,其参数也无类型
B、宏定义命令必须写在文件开头
C、宏替换只是字符替换
D、宏定义不是C语句,不必在行末加分号
15.以下叙述中不正确的是(B).
A、在程序中凡是以#号开始的语句行都是预处理命令行
B、C程序在执行过程中对预处理命令行进行处理
C、预处理命令行都必须以#号开始
D、以下是正确的宏定义#defineIBM_PC
16.若变量a和i已正确定义,且i已正确赋值,合法的语句是(A).
A、++i;
B、a=a++=5;
C、a==1
D、a=int(i);
17.以下符合C语言语法的赋值表达式是(A)
A、B)d=9+e,f=d+9
B、D)d=9十e++=d十7
C、A)d=9+e+f=d+9
D、C)d=9十e,e++,d十9
18.以下说法正确的是(D)
A、A)输入项可以为一实型常量,如scanf("%f",3.5);
B、C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);
C、B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");
D、D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);
19.fwrite函数的一般调用形式是(C).
A、fwrite(fp,count,size,buffer);
B、fwrite(buffer,count,size,fp);
C、fwrite(buffer,size,count,fp);
D、fwrite(fp,size,count,buffer);
20.用语句scanf("x=%f,y=%f",&x,&y);使x,y的值均为1.25,正确的输入是(C)
A、1.25,1.25
B、1.25□1.25
C、x=1.25,y=1.25
D、x=1.25□y=1.25
21.输入某字符串时,不可使用的函数是(B).
A、scanf()
B、getchar()
C、fread()
D、gets()
22.算术运算符、赋值运算符和关系运算符的运算优先级从高到低依次为(B)
A、关系运算、赋值运算、算术运算
B、算术运算、关系运算、赋值运算
C、算术运算、赋值运算、关系运算
D、关系运算、算术运算、赋值运算
23.执行以下程序段后,输出结果和a的值是(C).
inta=10;printf("%d",a++);
A、11和11
B、10和10
C、10和11
D、11和10
24.在位运算中,操作数每左移一位,其结果相当于(A).
A、操作数乘以2
B、操作数乘以4
C、操作数除以4
D、操作数除以2
25.下列四个选项中,均是C语言关键字的选项是(C).
A、autoenuminclude
B、signedunionscanf
C、switchtypedefcontinue
D、ifstructtype
26.以下选项中合法的实型常数是(B).
A、1.3E
B、.2E0
C、5E2.0
D、E-3
27.设有定义:
inta=3,b=4;执行语句printf("%d,%d",(a,b),(b,a));的输出是(C)
A、3,3
B、3,4
C、4,3
D、4,4
28.关于建立函数的目的,以下正确的说法是(D).
A、减少程序文件所占内存
B、提高程序的执行效率
C、减少程序的篇幅
D、提高程序的可读性
29.下列关于单目运算符++、--的叙述中正确的是(D)
A、它们的运算对象可以是int型变量,但不能是double型变量和float型变量
B、它们的运算对象可以是char型变量、int型变量和float型变量
C、它们的运算对象可以是任何变量和常量
D、它们的运算对象可以是char型变量和int型变量,但不能是float型变量
30.以下不正确的叙述是(D)
A、C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变.
B、B)在C程序中,APH和aph是两个不同的变量
C、A)在C程序中,逗号运算符的优先级最低
D、D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值.
31.在C语言中,char型数据在内存中的存储式是(A)
A、ASCII码
B、原码
C、反码
D、补码
32.切换编辑窗和信息窗的命令键是(B).
A、F3
B、F6
C、F9
D、F2
33.以下正确的描述是(D)
A、continue语句的作用是结束整个循环的执行
B、在循环体内使用break语句或continue语句的作用相同
C、从多层循环嵌套中退出时,只能使用goto语句
D、只能在循环体内和switch语句体内使用break语句
34.以下叙述中正确的是(D).
A、在程序的一行上可以出现多个有效的预处理命令行
B、在以下定义中CR是称为"宏名"的标识符#defineCR045
C、使用带参的宏时,参数的类型应与宏定义时的一致
D、宏替换不占用运行时间
35.doublex;scanf("%lf",&x);不可以赋值给x变量的常量是(A).
A、"abc"
B、123
C、100000
D、A'
36.打开文件时,方式"w"决定了对文件进行的操作是(C).
A、只读盘
B、追加写盘
C、只写盘
D、可读可写盘
37.在C语言中,合法的长整型常数是(A)
A、0L
B、216D
C、324562&
D、4962710
38.若x,i,j和k都是int型变量,则执行下面表达式后x的值为x=(i=4,j=16,k=32)(D)
A、A)4
B、B)16
C、D)52
D、C)32
39.一个C程序的执行是从(C).
A、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
B、本程序的main函数开始,到本程序文件的最后一个函数结束
C、本程序的main函数开始,到main函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束
40.C语言的if语句嵌套时,if与else的配对关系是(A).
A、每个else总是与它上面的最近的没有配对的if配对
B、每个else总是与最外层的if配对
C、每个else与if的配对是任意的
D、每个else总是与它上面的if配对
【程序设计】
--------------------------------------------------
1.题目:
编写函数fun,求任一整数m的n次方。
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数
main和其它函数中的任何内容,仅在函
数fun的花括号中填入所编写的若干语句。
------------------------------------------------*/
#include"stdio.h"
main()
{intm,n;
longs;
longfun(int,int);
printf("输入m和n的值:
");
scanf("%d,%d",&m,&n);
s=fun(m,n);
printf("s=%ld\n",s);
getch();
yzj();
}
longfun(intm,intn)
{
/**********Begin**********/
longintx=1;
inti;
for(i=1;i<=n;i++)
x=x*m;
returnx;
/**********End**********/
}
yzj()
{
FILE*IN,*OUT;
intn;
inti[2];
longo;
IN=fopen("in.dat","r");
if(IN==NULL)
{printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("WriteFileError");
}
for(n=0;n<2;n++)
{
fscanf(IN,"%d",&i[n]);
}
o=fun(i[0],i[1]);
fprintf(OUT,"%ld\n",o);
fclose(IN);
fclose(OUT);
}
2.题目:
编写函数fun(x,y),函数的功能是若x、
y为奇数,求x到y之间的奇数和;若x、y
为偶数,则求x到y之间的偶数和。
主函数的功能是计算
(1+3+5+……+1999)-(2+4+6+……+1998)的值。
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数
main和其它函数中的任何内容,仅在函
数fun的花括号中填入所编写的若干语句。
------------------------------------------------*/
#include"stdio.h"
main()
{ints,i,j;
s=fun(1,1999)-fun(2,1998);
printf("s=%d\n",s);
getch();
yzj();
}
intfun(intx,inty)
{
/**********Begin**********/
inti,s=0;
for(i=x;i<=y;i+=2)
s=s+i;
returns;
/**********End**********/
}
yzj()
{
FILE*IN,*OUT;
intn;
inti[2];
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("WriteFileError");
}
for(n=0;n<2;n++)
{
fscanf(IN,"%d",&i[n]);
}
o=fun(i[0],i[1]);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
3.题目:
编写函数求表达式的和(n的值由主函数输入)。
1-1/2+1/3-1/4+......+1/m
n的值为20时,表达式的值为0.668771。
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数
main和其它函数中的任何内容,仅在函
数的花括号中填入所编写的若干语句。
------------------------------------------------*/
#include"stdio.h"
floatsum(intn)
{
/**********Begin**********/
floats=0;
inti,k=1;
for(i=1;i<=n;i++)
{s=s+k*1.0/i;
k=-k;
}
return(s);
/**********End**********/
}
main()
{intn;
scanf("%d",&n);
printf("sum=%f\n",sum(n));
yzj();
getch();
}
yzj()
{
FILE*IN,*OUT;
intm,n;
inti[10];
floato;
IN=fopen("in.dat","r");
if(IN==NULL)
{printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("WriteFileError");
}
for(n=0;n<5;n++)
fscanf(IN,"%d",&i[n]);
for(n=0;n<5;n++)
{
o=sum(i[n]);
fprintf(OUT,"%f\n",o);
}
fclose(IN);
fclose(OUT);
}
4.题目:
编写函数fun求1!
+2!
+3!
+……+n!
的和,在
main函数中由键盘输入n值,并输出运算
结果。
请编写fun函数。
例如:
若n值为20,则结果为268040729
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数main
和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
------------------------------------------------*/
#include
floatfun(intn)
{
/**********Begin**********/
inti;
floatf=1,s=0;
for(i=1;i<=n;i++)
{f=f*i;
s=s+f;}
returns;
/**********End**********/
}
main()
{
inti,n;
longintresult;
scanf("%d",&n);
result=fun(n);
printf("%ld\n",result);
getch();
yzj();
}
yzj()
{
FILE*IN,*OUT;
inti;
intiIN;
longintiOUT;
IN=fopen("in.dat","r");
if(IN==NULL)
{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
for(i=0;i<5;i++)
{fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%ld\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
5.题目:
编写函数求1~100中奇数的平方和。
结果为166650。
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数
main和其它函数中的任何内容,仅在函
数的花括号中填入所编写的若干语句。
------------------------------------------------*/
#include"stdio.h"
floatsum(intn)
{
/**********Begin**********/
floats=0;
inti,j;
for(i=1;i<=n;i=i+2)
s=s+i*i;
return(s);
/**********End**********/
}
main()
{
printf("sum=%f\n",sum(100));
yzj();
getch();
}
yzj()
{
FILE*IN,*OUT;
intn;
inti;
floato;
IN=fopen("in.dat","r");
if(IN==NULL)
{printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("WriteFileError");
}
fscanf(IN,"%d",&i);
o=sum(i);
fprintf(OUT,"%f\n",o);
fclose(IN);
fclose(OUT);
}