c语言.docx
- 文档编号:30185206
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:116
- 大小:48.48KB
c语言.docx
《c语言.docx》由会员分享,可在线阅读,更多相关《c语言.docx(116页珍藏版)》请在冰豆网上搜索。
c语言
在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量.
答案:
Y
循环结构while、dowhile、for不可以互相嵌套.
答案:
N
链表中的任何一个结点,必然要包括一个指针域.
答案:
Y
在书写C程序时,一行内只能写一条语句,一条语句也不能写在多行上.
答案:
N
C语言程序中用到的所有变量必须在使用之前进行定义.
答案:
Y
若定义inta[4]={1,2,3,4};若超界引用a[4]则编译时不报错.
答案:
Y
C语言本身不提供输入输出语句,输入和输出操作是由函数来
实现的。
答案:
Y
通过return语句,函数可以带回一个或一个以上的返回值。
答案:
N
对于数值型数组,C语言中只能逐个引用数组元素而不能一次引用整个数组。
答案:
Y
inti,*p=&i;是正确的C说明。
答案:
Y
C语言源程序的基本单位是()。
A:
过程
B:
函数
C:
子程序
D:
标识符
答案:
B
C语言中,char类型数据占()。
A:
1个字节
B:
2个字节
C:
4个字节
D:
8个字节
答案:
A
下列程序的输出结果是()。
main()
{charc1=97,c2=98;
printf("%d%c",c1,c2);
}
A:
9798
B:
97b
C:
a98
D:
ab
答案:
B
关于return语句,下列正确的说法是()。
A:
在主函数和其他函数中均可出现
B:
必须在每个函数中出现
C:
可以在同一个函数中出现多次
D:
只能在除主函数之外的函数中出现一次
答案:
C
下列表达式中不是赋值表达式的是().
A:
a*=b
B:
x=1
C:
a+b
D:
a++
答案:
C
在C语言中,能代表逻辑值“真”的是()。
A:
True
B:
大于0的数
C:
非0整数
D:
非0的数
答案:
D
以下叙述不正确的是()。
A:
一个C源程序可由一个或多个函数组成
B:
一个C源程序必须包含一个main函数
C:
C程序的基本组成单位是函数
D:
在C程序中,注释说明只能位于一条语句的后面
答案:
D
以下各标识符中,合法的用户标识符为().
A:
A#C
B:
mystery
C:
main
D:
ab*
答案:
B
下列定义数组的语句中不正确的是()。
A:
inta[2][3]={1,2,3,4,5,6};
B:
inta[2][3]={{1},{4,5}};
C:
inta[][3]={{1},{4}};
D:
inta[][]={{1,2,3},{4,5,6}};
答案:
D
以下不正确的叙述是()。
A:
在C程序中所用的变量必须先定义后使用
B:
程序中,APH和aph是两个不同的变量
C:
若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变
D:
当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值
答案:
D
定义双精度实型变量应使用().
A:
longint
B:
float
C:
char
D:
double
答案:
D
判断char型变量cl是否为小写字母的正确表达式是()。
A:
'a'<=cl<='z'
B:
(cl>=a)&&(cl<=z)
C:
('a'>=cl)||('z'<=cl)
D:
(cl>='a')&&(cl<='z')
答案:
D
下列语句定义pf为指向float类型变量f的指针,_____是正确的.
A:
floatf,*pf=f;
B:
floatf,*pf=&f;
C:
float*pf=&f,f;
D:
floatf,pf
答案:
B
C语言源程序名的后缀是
A:
exe
B:
c
C:
obj
D:
cp
答案:
B
下列选项中正确的语句组是()。
A:
chars[8];s={"Beijing"};
B:
char*s;s={"Beijing"};
C:
chars[8];s="Beijing";
D:
char*s;s="Beijing";
答案:
D
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
输出9*9口诀。
-------------------------------------------------------*/
#include
voidmain()
{
inti,j,result;
printf("\n");
/***********SPACE***********/
for(i=1;【?
】;i++)
{
/***********SPACE***********/
for(j=1;j<10;【?
】)
{
result=i*j;
/***********SPACE***********/
printf("%d*%d=%-3d",i,j,【?
】);
}
printf("\n");
}
}
答案:
=======(答案1)=======
i<10
=========或=========
10>i
=======(答案2)=======
j++
=========或=========
++j
=========或=========
j=j+1
=======(答案3)=======
result
四、程序改错共1题(共计15分)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
输出Fabonacci数列的前20项,要求变量类型定义成浮点型,
输出时只输出整数部分,输出前20项。
------------------------------------------------------*/
#include
voidfun()
{
inti;
floatf1=1,f2=1,f3;
/**********FOUND**********/
printf("%8d",f1);
/**********FOUND**********/
for(i=1;i<=20;i++)
{
f3=f1+f2;
/**********FOUND**********/
f2=f1;
/**********FOUND**********/
f3=f2;
printf("%8.0f",f1);
}
printf("\n");
}
voidmain()
{voidfun();
fun();
}
答案:
=======(答案1)=======
printf("%8.0f",f1);
=========或=========
printf("%f",f1);
=========或=========
printf("%8f",f1);
=======(答案2)=======
for(i=1;i<20;i++)
=========或=========
for(i=1;20>i;i++)
=========或=========
for(i=2;i<=20;i++)
=========或=========
for(i=2;20>=i;i++)
=========或=========
for(i=1;i<=19;i++)
=========或=========
for(i=1;19>=i;i++)
=======(答案3)=======
f1=f2;
=======(答案4)=======
f2=f3;
五、程序设计共1题(共计20分)
第1题(20.0分)题号:
319
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数判断m是否为素数。
在main函数中输出了100到200之间所有的素数。
------------------------------------------------*/
#include"stdio.h"
voidwwjt();
intfun(intm)
{
/**********Program**********/
/**********End**********/
}
voidmain()
{intfun(intm);
intm,k=0;
for(m=100;m<200;m++)
if(fun(m))
{
printf("%4d",m);
k++;
if(k%5==0)
printf("\n");
}
printf("k=%d\n",k);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intiIN,iOUT,i;
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<10;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:
----------------------
inti,k=1;
if(m<=1)k=0;
for(i=2;i if(m%i==0)k=0; returnk; ---------------------- 一个字符型数据可以用整型数据格式输出,一个整数(只限于与字符相对应的整数)也可以用字符形式输出. 答案: Y 在C语言中,void型函数将返回一个void型的数值. 答案: N C语言的函数可以嵌套定义. 答案: N 整数-32100可以赋值给int型和longint型变量。 答案: Y 函数嵌套就是在定义函数的函数体中调用被定义的函数本身. 答案: N 在C语言中,FLOAT可以被定义为变量名. 答案: Y 函数的递归就是反复地进行函数调用. 答案: N 在C语言程序中,同一个问题可以有多种实现算法. 答案: Y 字符型数据与整型数据之间可以互相赋值和运算. 答案: Y c程序总是从程序的第一条语句开始执行. 答案: N C语言源程序的基本单位是()。 A: 过程 B: 函数 C: 子程序 D: 标识符 答案: B 定义双精度实型变量应使用(). A: longint B: float C: char D: double 答案: D 对以下说明语句inta[10]={6,7,8,9,10};的正确理解是()。 A: 将5个初值依次赋给a[1]至a[5] B: 将5个初值依次赋给a[0]至a[4] C: 将5个初值依次赋给a[6]至a[10] D: 因为数组长度与初值的个数不相同,所以此语句不正确 答案: B 假定int类型变量占用两个字节,其有定义: intx[10]={0,2,4};, 则数组x在内存中所占字节数是()。 A: 3 B: 6 C: 10 D: 20 答案: D 在程序设计中,下面关于算法的最恰当描述是(). A: 算法是求解问题的数学计算公式 B: 流程图是描述算法的唯一方法 C: 在某一算法中,至少应该有一个输入(或多个输入). D: 同一个问题可能有多种实现算法 答案: D 下列数据中,为字符串常量的是()。 A: A B: "house" C: Howdoyoudo. D: $abc 答案: B C语言规定,函数返回值的类型是由()。 A: return语句中的表达式类型所决定 B: 调用该函数时的主调函数类型所决定 C: 调用该函数时系统临时决定 D: 在定义该函数时所指定的函数类型所决定 答案: D 下列()不是C语言数据类型中的基本类型. A: 整型 B: 数组类型 C: 单精度型 D: 字符类型 答案: B 以下标识符中,不能作为合法的C用户定义标识符的是()。 A: a3_b3 B: void C: _123 D: IF 答案: B 以下选项中合法的实型常数是()。 A: 5E2.0 B: E-3 C: .2E0 D: 1.3E 答案: C 下列说法中错误的是 A: 一个数组只允许存储同种类型的变量 B: 如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值 C: 数组的名称其实是数组在内存中的首地址 D: 当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改 答案: B 下面不正确的字符串常量是()。 A: 'abc' B: "12'12" C: "0" D: "" 答案: A 在C语言的函数中,下列正确的说法是()。 A: 必须有形参 B: 形参必须是变量名 C: 可以有也可以没有形参 D: 数组名不能作形参 答案: C 为表示关系x≥y≥z,应使用C语言表达式 A: (x>=y)&&(y>=z) B: (x>=y)AND(y>=z) C: (x>=y>=z) D: (x>=z)&(y>=z) 答案: A C语言中用于结构化程序设计的三种基本结构是(). A: 顺序结构、选择结构、循环结构 B: if、switch、break C: for、while、do-while D: if、for、continue 答案: A /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 分别求出一批非零整数中的偶数、奇数的平均值,用零作 为终止标记。 -------------------------------------------------------*/ #include voidmain() { intx,i=0,j=0; floats1=0,s2=0,av1,av2; scanf("%d",&x); /***********SPACE***********/ while(【? 】) { if(x%2==0) { s1=s1+x; i++; } /***********SPACE***********/ 【? 】 { s2=s2+x; j++; } /***********SPACE***********/ 【? 】; } if(i! =0) av1=s1/i; else av1=0; if(j! =0) /***********SPACE***********/ 【? 】; else av2=0; printf("oushujunzhi: %7.2f,jishujunzhi: %7.2f\n",av1,av2); } 答案: =======(答案1)======= x! =0 =========或========= x =======(答案2)======= else =========或========= elseif(x%2==1) =========或========= elseif(x%2! =0) =========或========= if(x%2) =======(答案3)======= scanf("%d",&x) =======(答案4)======= av2=s2/j /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 编写函数fun求20以内所有5的倍数之积。 ------------------------------------------------------*/ #include #defineN20 intfun(intm) { /**********FOUND**********/ ints=0,i; for(i=1;i /**********FOUND**********/ if(i%m=0) /**********FOUND**********/ s=*i; returns; } voidmain() {intfun(intm); intsum; sum=fun(5); printf("%d以内所有%d的倍数之积为: %d\n",N,5,sum); } 答案: =======(答案1)======= ints=1,i; =======(答案2)======= if(i%m==0) =======(答案3)======= s=s*i; =========或========= s=i*s; =========或========= s*=i; 五、程序设计共1题(共计20分) 第1题(20.0分)题号: 16 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 编写函数fun求1! +2! +3! +……+n! 的和,在main函 数中由键盘输入n值,并输出运算结果。 请编写fun 函数。 例如: 若n值为5,则结果为153。 ------------------------------------------------*/ #include voidwwjt(); longintfun(intn) { /**********Program**********/ /**********End**********/ } voidmain() {longintfun(intn); intn; longintresult; scanf("%d",&n); result=fun(n); printf("%ld\n",result); wwjt(); } voidwwjt() { 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<10;i++) { fscanf(IN,"%d",&iIN); iOUT=fun(iIN); fprintf(OUT,"%ld\n",iOUT); } fclose(IN); fclose(OUT); } 答案: ---------------------- inti; floatf=1,s=0; for(i=1;i<=n;i++) {f=f*i; s=s+f;} returns; ---------------------- 循环结构while、dowhile、for不可以互相嵌套. 答案: N 在C程序中,函数既可以嵌套定义,也可以嵌套调用 答案: N 在C语言的标识符中,大写字母和小写字母完全等价. 答案: N 函数的递归就是反复地进行函数调用. 答案: N C语言对标识符的约定: 大小写字母是不同的字符. 答案: Y inti=20;switch(i/10){case2: printf("A"); case1: printf("B");}的输出结果为A。 答案: N 用puts和gets函数可以输入输出带空格的字符串. 答案: Y 在C语言程序中,同一个问题可以有多种实现算法. 答案: Y C程序如果有多个函数,C程序的执行总是从最前边的函数开始的. 答案: N 如果有一个字符串,其中第十个字符为'\n',则此字符串的 有效字符为9个。 答案: N C语言规定,函数返回值的类型是由()。 A: return语句中的表达式类型所决定 B: 调用该函数时的主调函数类型所决定 C: 调用该函数时系统临时决定 D: 在定义该函数时所指定的函数类型所决定 答案: D 以下不能正确定义二维数组的选项是(). A: inta[2][2]={{1},{2}}; B: inta[][2]={1,2,3,4}; C: inta[2][2]={{1},2,3}; D: inta[2][]={{1,2},{3,4}}; 答案: D 下列表达式中不是赋值表达式的是(). A: a*=b B: x=1 C: a+b D: a++ 答案: C 下面叙述中错误的是 A: 函数的形式参数,在函数未被调用时就不被分配存储空间 B: 若函数的定义出现在主调函数之前,则可以不必再加说明 C: 若一个函数没有return语句,则什么值也不会返回 D: 一般来说,函数的形参和实参的类型要一致 答案: C 若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()。 A: intp=&x; B: int*p=x; C: int*p=&x; D: *p=*x; 答案: C C语言规定,在一个源程序中,main函数的位置()。 A: 必须在最开始 B: 必须在系统调用的库函数的后面 C: 可以任意 D: 必须在最后 答案: C 若变量已正确定义并赋值,下面符合C语言语法的表达式是()。 A: a: =b+1 B: a=b=c+2 C: int18.5%3 D: a=a+7=c+b 答案: B 以下叙述中正确的是()。 A: 构成C程序的基本单位是函数 B: 可以在一个函数中定义另一个函数 C: main()函数必须放在其它函数之前 D: 所有被调用的函数一定要在调用之前进行定义 答案:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言