题号 | 一 | 二 | 三 | 四 | 五 | 六 | 总分 |
得分 | |||||||
考试形式:■闭卷 □开卷 ■笔试 □机试 答卷要求:试卷答案需填写至答题卡内
一、单项选择题(每小题 2 分,共 30 分)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
C | D | A | B | B | A | D | A | C | C |
11 | 12 | 13 | 14 | 15 | |||||
C | D | A | C | B | |||||
1、C语言源程序文件是一个后缀为( )的文件。(第1章)
A) .bas B) .java C) .c D) .pas
2、下列哪个图形不属于传统流程图的符号( )(第2章)
A) B) C) D)
3、下列标识符中,不合法的用户标识符为( )。(第3章)
A) a+4 B) If C) then D) _123
4、下面运算符优先级最高的是( )。(第3章)
A) * B) ! C) -(减号) D) =
5、以下哪个是不正确的转义字符( )。(第3章)
A) '\\' B) '077' C) '\0' D) '\n'
6、若int n,x=1,y=0,则条件表达式n=x<y?x:y的结果为( )。(第4章)
A) 0 B) 1 C) 2 D) 表达式错误
7、分析以下程序, 下列说法正确的是( )。(第4章)
int main()
{ int i=10,m=0,n=0,k=0;
switch(i/10)
{ case 0: m++;n++;break;
case 10: n++; break;
default: k++;n++; }
printf("%d %d %d\n",m,n,k); }
A) 0 0 0 B) 0 1 0 C) 1 1 0 D) 0 1 1
8、程序段如下:则以下说法中正确的是( )。(第5章)
int k=-10; while(k<0) k=k+1;
A) while循环执行10次 B) while循环执行11次
C) 循环体语句一次也不执行 D) 循环是无限循环
9、下列程序段执行后k值为( )。(第5章)
int k=0,i;
for(i=0;i<=20;i+=3) k=k+1;
A)5 B)6 C)7 D)8
10、若有定义int a[5],i=4;则对数组元素的非法引用是( )。(第6章)
A) a[i] B) a[i-1] C) a[i+1] D) a[i-4]
11、以下能正确定义数组并正确赋初值的语句是( )。(第6章)
A) int a[2][]={1,2,3,4}; B) int a[2][3]={1,2,3,4,5,6,7};
C) int a[][3]= {1,2,3,4,5,6}; D) int a[][]={1,2,3,4,5,6};
12、C语言规定,函数返回值的类型是由( )。(第7章)
A) return语句中的表达式类型所决定
B) 调用该函数时的主调函数类型所决定
C) 调用该函数时系统临时决定
D) 在定义该函数时所指定的函数类型决定
13、以下函数调用语句中实参的个数为( )。(第7章)
func((v1,v2),(v3,v4,v5),v6);
A) 3 B) 4 C) 5 D) 6
14、有如下程序段,执行该程序段后a 的值为( )。(第8章)
int *p,a=10,b=2;
p=&a; a=*p+b;
A) 10 B) 11 C) 12 D) 编译出错
15、有如下说明,则数值为9 的表达式是( )。(第8章)
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
A) *p+9 B) *(p+8) C) *p+=9 D) p+8
二、填空题(每小题 2 分,共 10 分)
1 | 函数 | 2 | 1/3*n(4*n-1)(4*n-1) |
3 | 1 | 4 | 50 |
5 | 4 | ||
1、C语言程序是由若干个 组成。(第1章)
2、若有声明double n;,则数学公式对应的C语言表达式形式为________。(第3章)
3、执行语句“a=0,b=1,c=2;if(a>0 && b>0) c++; else c--;"后,变量c值为______。(第4章)
4、执行语句“for(s=0,i=1;i<11;i++) {if(i==5) continue; s+=i; }"后,s值为______。(第5章)
5、在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是_________。(第6章)
三、程序改错题。指出下列程序错误代码并改正,使其能正确运行。(每题只有2处错,指出1处得1分,改正得2分,每处 3分,共 12 分)
题号 | 错误代码 | 改正后 | |
1 | (1) | scanf("%d,%d",a,b); | scanf("%d,%d",&a,&b); |
(2) | printf("%d\n,a+b"); | printf("%d\n",a+b); | |
2 | (1) | for (i=1;i<=300;i++); | for (i=1;i<=300;i++) |
(2) | if (n%3) | if (n%3==0) | |
1、(第3章)
下面程序是输出a、b两个数,输出a+b的和。
#include <stdio.h>
int main(){
int a,b;
scanf("%d,%d",a,b);
printf("%d\n,a+b");
}
2、(第4章和第5章)
下面程序是求1..300之间能被3整除的数。
int main()
{ int i;
for (i=1;i<=300;i++);
if (n%3)
printf("%d ",i);
return 0;
}
四、程序分析题,根据下列程序,写出其运行结果。(每小题 4 分,共 12 分)
1、(第3章)
int main() { int x=4,y=0,z; x*=3+2; printf("%d ",x); x*=y=z=4; printf("%d",x); } | 输出结果:______ 20 80 |
2、(第4章和第5章)
#include <stdio.h> int main() { int i; for(i=1;i<=5;i++) { if(i%2) putchar('<'); else continue; putchar('>'); } putchar(c语言程序分析题及答案'#'); } | 输出结果:______ < >< >< ># |
3、(第6章)
void main() { int a[4][4],i,j,k; for (i=0;i<4;i++) for (j=0;j<4;j++) a[i][j]=i-j; for (i=0;i<4;i++) { for (j=0;j<=i;j++) printf(" %d",a[i][j]); printf("\n"); } } | 输出结果:______ 0 1 0 2 1 0 3 2 1 0 |
五、程序填空题(每空 3 分,共 12 分)
第1空 | Sn+hn | 第2空 | hn/2 |
第3空 | a[i]>a[maxIndex] | 第4空 | maxIndex |
1、一球从 100米高度自由落下,每次落地后反跳回原来高度的一半,再落下,求它在第十次落地时,共经过多少米?第十次反弹多高?(第4和5章)
int main()
{
float Sn=100.0,hn=Sn/2;
int n;
for (n=2;n<=10;n++)
{
Sn= 【第1空】;
hn= 【第2空】;
}
printf("第10次落地时共经过%f米\n",Sn);
printf("第10次反弹%f米\n",hn);
}
2、下面的函数是实现出一维数组中最大元素的下标。(第6和7章)
int findMaxIndex(int a[],int n)
{
int i;
int maxIndex;
maxIndex=0;
for(i=0;i<n;i++)
if(【第3空】)
maxIndex=i;
return 【第4空】;
}
六、编程题(第1题 12 分,第2题12分,共 24 分)
1、有三个数a、b、c,由键盘输入,输出其中最大的数。
(1)画出该程序的流程图;(6分)
(2)编写程序。(6分)
参考答案
(1)
(2)
#include <stdio.h>
int main()
{
int a,b,c;
int max;
scanf("%d%d%d",&a,&b,&c);
if (a>b)
max=a;
else
max=b;
if (c>max)
max=c;
printf("max=%d\n",max);
return 0;
}
2、编写程序,对n个整数逆序存放。n个整数和n在主程序中输入,最后在主函数中输出。(要求使用指针变量指向数组的方法)
例如:8 6 9 1 3,逆序后结果是:3 1 9 6 8
参考答案
#include <stdio.h>
#define N 20
void revert(int a[],int n)
{
int *p,i;
int t;
p=a;
for (i=0;i<n/2;i++)
{
t=*(p+i);
*(p+i)=*(p+n-i-1);
*(p+n-i-1)=t;
}
}
int main()
{
int i,n;
int a[N];
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&a[i]);
revert(a,n);
for (i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论