资源描述
江苏省计算机等级考试
- 学年 第 学期 c程序设计 试卷( )
题号
一
二
三
四
五
六
七
八
九
总 分
得分
一、选择题(本题共20道小题,共40分。)
1. 若有说明,double *p,a;则能通过scanf语句对的给输入项读入数据的程序段是
A)*p=&a; scanf("%lf",p);
B)p=(double*)malloc(8);scanf("%f",p);
C) p=&a;scanf("%lf",a);
D)p=&a; scanf("%le",p);
2. 两次运营下面的程序,假如从键盘上分别输入6和4,则输出结果是
main( )
{ int x;
scanf("%d",&x);
if(x + + >5) printf("%d",x);
else printf("%d\n",x - -); }
A) 7和5 B) 6和3 C) 7和4 D) 6和4
3. 下面程序的输出是
A) xyzabcABC B) zabcABC C) yzabcABC D) xyabcABC
#include<stdio.h>
#include<string.h>
main()
{ char *p1="abc",*p2="ABC",str[50]="xyz";
strcpy(str+2,strcat(p1,p2));
printf("%s\n", str);}
4. 若有以下说明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
则数值为4的表达式是
A)a[g-c] B)a[4]
C)a['d'-'c'] D)a['d'-c]
5. 以下叙述中不对的的是
A)在不同的函数中可以使用相同名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量
6. 请选出以下程序段的输出结果
#include<stdio.h>
#define MIN(x,y) (x)<(y)? (x):(y)
main()
{ int i,j,k;
i=10; j=15;
k=10*MIN(i,j);
printf("%d\n",k);
}
A) 15 B) 100 C) 10 D)150
7. 在C程序中,可把整型数以二进制形式存放到文献中的函数是
A) fprintf函数 B) fread函数 C) fwrite函数 D) fputc函数
8. 设有以下语句:
struct st {int n; struct st *next;};
static struct st a[3]={5,&a[1],7,&a[2],9,'\0'},*p;
p=&a[0];
则表达式_____的值是6。
A)p + + ->n B) p->n + + C) (*p).n + + D) + + p->n
9. C语言中形参的缺省存储类别是
A)自动(auto) B)静态(static)
C)寄存器(register) D)外部(extern)
10. 执行下面的程序段后,变量k中的值为
int k=3, s[2];
s[0]=k; k=s[1]*10;
A) 不定值 B) 33 C) 30 D) 10
11. 已知字母A的ASCII码为十进制的65,下面程序的输出是
main()
{ char ch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);}
A) 67,D B) B,C
C) C,D D) 不拟定的值
12. 语句:printf("%d \n",12 &012);的输出结果是
A) 12 B) 8 C) 6 D) 012
13. 以下说法中对的的是
A) C语言程序总是从第一个的函数开始执行
B) 在C语言程序中,要调用的函数必须在main()函数中定义
C) C语言程序总是从main()函数开始执行
D) C语言程序中的main()函数必须放在程序的开始部分
14. 以下程序运营后,输出结果是
main( )
{
char *s="abcde";
s+=2;
printf("%ld\n",s);
}
A)cde B)字符c的ASCII码值 C)字符c的地址 D)犯错
15. 设x和y均为int型变量,则执行下的循环后,y值为
for(y=1,x=1;y<=50;y++)
{
if(x>=10)break;
if(x%2==1){x+=5;continue;}
x-=3;
}
A)2 B)4 C)6 D)8
16. 当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为
if(a<b)
if(c<d)x=1;
else if(a<c)
if(b<d)x=2;
else x=3;
else x=6;
else x=7;
A)1 B)2 C)3 D)6
17. 设所有变量均为int型,则表达式(a=2,b=5,b++,a+b)的值是
A.7 B.8 C.6 D.2
18. 设C语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为:
A) 0-255
B) 1-32767
C) 0-65535
D) 0-
19. 下面的程序
main()
{ int x=3,y=0,z=0;
if(x=y+z)printf("* * * *");
else printf("# # # #");}
A) 有语法错误不能通过编译
B) 输出* * * *。
C) 可以通过编译,但是不能通过连接,因而不能运营。
D) 输出# # # #。
20. 若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是
A)3 B)4 C)5 D)6
二、填空题(每空1分,共10分。)
1. 若有定义:double x[3][5],则x数组中行下标的下限为_________,列下标的下限为__________。
2. 设有说明语句"int a[3][4]={{1,2},{3,4,5},{6,7,8}};"则a[0][2]的初始化值为_____________,a[2][2]的初始化值为______________。
3. 表达式7/2的结果是____________。表达式7%2的结果是____________。
4. 若已知a=1.5,b=15,c=1,则表达式a*b&&c的运算结果是____________。
5. C语言的标记符只能由大小写字母,数字和下划线三种字符组成,并且第一个字符必须为______________。
6. 定义int a[]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是____________。
7. 已有int i,j; float x;为将-10赋给i,12赋给j,410.34赋给x;则相应scanf("%d,%d,%d",&i,&j,&f)调用语句的数据输入形式是__________
三、判断题(本题共10道小题,共10分。)
1. 在实际编程中,do-while循环完全可以用for循环替换( )
2. do-while循环中,根据情况可以省略while( )
3. 若调用一个函数,且此函数中没有return语句,则返回一个不拟定的值( )
4. 函数调用:strcat(strcpy(str1,str2),str3)的功能是将串str2复制到串str1中后再将串str3连接到串str1之后( )
5. 自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式( )
6. 全局变量使得函数之间的"耦合性"更加紧密,不利于模块化的规定( )
7. 函数的定义可以嵌套,但函数的调用不可以嵌套( )
8. 一个变量在内存中占据一定的存储单元( )
9. 在while循环中允许使用嵌套循环,但只能是嵌套while循环( )
10. 字符型数组中可以存放字符串( )
四、程序填空(本题共5道小题,每题4分,共20分。)
1. 设有以下程序:
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运营后,假如从键盘上输入1298;则输出结果为_________。
2. 以下程序输出的最后一个值是__________。
int ff(int n)
{ static int f=l;
f=f*n;
return f;
}
main()
{ int i;
for(I=1;I<=5;I++ printf("%d\n",ff(i));
}
3. 编写程序,计算s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。
#include <stdio.h>
main()
{
int n,s,sum=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
____________;
for(int j=1;j<=i;j++)
_____________;
sum+=s;
}
printf("%d",sum);
}
4. 若输入3个整数3,2,1,则下面程序的输出结果是____________。
#include<stdio.h>
void sub( n,uu)
int n, uu[ ];
{ int t;
t=uu[n--]; t+=3*uu[n];
n=n++;
if(t>=10)
{ uu[n++]=t/10; uu[n]=t%10;}
else uu[n]=t;
}
main( )
{ int i, n, aa[10]={0,0,0,0,0,0}
scanf( "%d%d%d",&n,&aa[0],&aa[1]);
for(i=1; i<n; i++) sub(i,aa);
for(i=0; i<=n; i++) printf("%d",aa[i]);
printf("\n");
}
5. 下列程序的输出结果是___________。
int ast(int x,int y,int * cp,int * dp)
{ *cp=x+y;
*dp=x-y;
}
main()
{
int a,b,c,d;
a=4;b=3;
ast(a,b,&c,&d);
printf("%d %d\n",c,d);
}
五、编程题(本题共2道小题,共20分。)
1. 打印出杨辉三角形(规定打印出10行如下图)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
2. 一个数假如恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
江苏省计算机等级考试
- 学年 第 学期 c程序设计 试卷(参考答案)
题号
一
二
三
四
五
六
七
八
九
总 分
得分
一、选择题(本题共20道小题,共40分。)
1. D
2. A
3. D
4. D
5. D
6. A
7. A
8. D
9. A
10. A
11. A
12. B
13. C
14. C
15. C
16. B
17. B
18. C
19. D
20. A
二、填空题(每空1分,共10分。)
1. 2 , 4
2. 0 , 8
3. 3 , 1
4. 1
5. 字母数字或下划线
6. 3
7. 10,12,410.34
三、判断题(本题共10道小题,共10分。)
1. 对
2. 错
3. 对
4. 对
5. 对
6. 对
7. 错
8. 对
9. 错
10. 错
四、程序填空(本题共5道小题,每题4分,共20分。)
1. 8921
2. 120
3. s=0 , s+=j
4. 2 7 2 1 或2721
5. 7 1
五、编程题(本题共2道小题,共20分。)
1. main()
{int i,j;
int a[10][10];
printf("\n");
for(i=0;i<10;i++)
{a[i][0]=1;
a[i][i]=1;}
for(i=2;i<10;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++)
{for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
2. main()
{
static int k[10];
int i,j,n,s;
for(j=2;j<1000;j++)
{
n=-1;
s=j;
for(i=1;i {
if((j%i)==0)
{ n++;
s=s-i;
k[n]=i;
}
}
if(s==0)
{
printf("%d is a wanshu",j);
for(i=0;i printf("%d,",k[i]);
printf("%d\n",k[n]);
}
}
}
展开阅读全文