c语言上机试题2
- 格式:doc
- 大小:227.00 KB
- 文档页数:12


江苏省计算机等级考试
- 学年 第 学期 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
#include
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]
1 江苏省二级C语言考试
一、选择题(本题共20道小题,共40分。)
1. 有下列程序
#include
main()
{
union
{
int k;
char i[2];
}*s,a;
s=&a;
s->i[0]=0x39;s->i[1]=0x38;
printf("%x\n",s->k);
}
输出结果是
A)3839 B)3938 C)380039 D)390038
2. 设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:
scanf("i=%d,f=%f",&i,&f);
为了把100和765.12分别赋给i和f,则正确的输入为
A)100765.12 B)i=100,f=765.12
C)100765.12 D)x=100,y=765.12
3. 设已有定义: char *st="how are you"; 下列程序段中正确的是
A) char a[11], *p; strcpy(p=a+1,&st[4]);
B) char a[11]; strcpy(++a, st);
C) char a[11]; strcpy(a, st);
D) char a[], *p; strcpy(p=&a[1],st+2);
4. 设j为int型变量,则下面for循环语句的执行结果是
for(j=10;j>3;j--)
{
if(j%3)j--;
--j;--j;
printf("%d",j);
}
A)6 3 B)7 4 C)6 2 D)7 3
5. 以下程序的输出结果是
2 main()
{
int i,k,a[10],p[3]:
K=5;
for (i=0;i<10;i++) a[i]=i;
for (i=0;i<3;i++) p[i]=a[i*(i+1)];
2013年全国计算机考试上机题库100套
第01套:
给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去 除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回 所指变量。
例如,输入一个数:27638496,新的数:为739。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
void fun(unsigned long *n)
{ unsigned long x=0, i; int t;
i=1;
while(*n)
{ t=*n % __1__;
if(t%2!= __2__)
{ x=x+t*i; i=i*10; }
*n =*n /10;
}
*n=__3__;
}
main()
{ unsigned long n=-1;
while(n>99999999||n<0)
{ printf("Please
input(0
scanf("%ld",&n); }
fun(&n);
printf("\nThe result is: %ld\n",n);
}
解题思路:
第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。
第二处:判断是否是奇数,所以应填:0。
第三处:最后通形参n来返回新数x,所以应填:x。
给定程序MODI1.C中函数 fun 的功能是:计算n!。
例如,给n输入5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include double fun ( int n )
{ double result = 1.0 ;
江苏省C等级考试(四)
一、选择题(本题共20道小题,共40分。)
1. (14) 指针s所指字符串的长度为
char *s="\\"Name\\Address\n";
A) 19 B) 15 C) 18 D)说明不合法
2. 若有下面的程序片段:
int a[12]={0}, *p[3], **pp, i;
for(i=0; i<3; i++)
p[i]=&a[i*4];
pp=p;
则对数组元素的错误引用是
A) pp[0][1] B) a[10] C) p[3][1] D) *(*(p+2)+2)
3. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为
A) a<>0 B) !a
C) a=0 D) a
4. 若已定义:
int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i;
其中 0≤i≤9, 则对a数组元素不正确的引用上
A) a[p-a] B) *(&a[i]) C) p[i] D) a[10]
5. 以下程序的输出结果是
main( )
{ int x=10,y=10,I;
for(i=0;x>8;y=++i)
printf("%d,%d ",x--,y);
}
A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1
6. 下面程序的输出是
void prtv(int *x)
printf("%d\n", ++*x);}
main()
{ int a=25;
prtv(&a);}