C程序设计技术模拟试题1(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C程序设计技术模拟试题(一)
一、单项选择题(每小题2分,共30分)
1.C语言表达式9/5*sqrt(2)/2的数据类型是()。
A.整型B.实型
C.双精度型D.不确定
2.char类型变量的数据表示范围为()。
A.-128~127 B.0~127
C.0~128 D.0~255
3.执行语句:for( i=1; i++<10; ); 后,循环控制变量i的值是()。
A.9 B.10
C.11 D.1
4.下面程序段执行后的输出结果是()。
char s1[10], s2[20]="Hi!Morning!";
strcpy( s1, s2+3);
strcpy( &s2[3], "Good" );
strcat( s2, s1 );
A.Hi!GoodMoring! B.Moring!
C.Good D.Hi!Good
5.下面所列选项中,不能作为合法常量的是( )。
A. 1.234e4
B. e
C. '\0'
D. 1234
6. 若有以下代码段,则p1-p2的绝对值是()。
int a[10], *p1, *p2;
p1=a;
p2=&a[5];
A.4 B.5
C.6 D.10
7.已知字符'A'的ASCII码值是65,且char c1='A', c2='D'; 则执行语句:printf("%d,%d\n", c1, c2-2); 后的输出结果是( )。
A. A,D
B. A,B
C. 65,68
D. 65,66
8.执行printf("%d\n", strlen("a\n\"\x4e"))语句后,输出结果是()。
A. 8
B. 6
C. 4
D. 2
9.以下对函数的描述中,不正确的是()。
A.函数不可嵌套定义,但可以递归调用
B.在调用函数时,可以把实参值传递给形参,也可通过将形参值传给实参
C.程序中有调用关系的所有函数必须放在同一个源程序文件中
D.函数的定义是否有返回值,可根据函数要求而定
10.设指针变量p已正确指向函数fun(x,y,z),则使用p调用函数fun的表达式书写方法是()。
A.*p(x,y,z) B.(*p) (x,y,z)
C.*p(fun(x,y,z)) D.(*ptr(fun(x,y,z))
11.在下列选项中,没有构成死循环的程序段是()。
A. int s=1;
while(s)
;
++s;
B. int i=100;
while (1)
{
i=i%100+1;
if(i>100)
break;
}
C. for(;;)
;
D. int k=1000;
do
{
++k;
}while(k>=10000);
12.设有语句int x[]={ 0,1,2,3,4,5,6,7,8,9},*p=x;则下列对x数组元素不能正确引用的是()。
A.*(*x[x+5]) B.*(&x[5])
C.x[p-x] D.p[5]
13.设有C定义语句如下所示,则表达式:sizeof(STU) 的值是()。
typedef struct
{
int No;
char name[20];
int score;
}STU;
A.30 B.28
C.26 D.24
14.下面C程序的运行结果是()。
#include <stdio.h>
#define SUM(y) 10+y
void main()
{
int x=3;
printf("%d\n",SUM(5)*x);
}
A.25 B.35
C.45 D.55
15.设已用文件指针fp正确打开了文件,以下语句段的作用是()。
int x=0;
fseek(fp,0,SEEK_END);
x=ftell(fp);
A.将记录指针移到文件尾B.重置记录指针
C.计算文件的长度赋值给x D.判断是否到文件结束处
二、概念选择填空题(本大题后面有若干备选项,请选择合适的备选项填空,每空2分,共10分)
1.已定义“char ch=6;int i=6,j;”,执行“j=ch || i++”以后,i的值为。
2.设有定义语句:“int a[][8]={{0},{1},{2}};”,则数组元素a[1][2]与a[2][0]的值分别为。
3.文件是把内存中的数据,按其在内存中的存储形式原样存放到计算机外部设备的指定文件中。
4. 赋值运算的结合性是。
5.已定义:int *p;,将p指向50个整型动态存储单元的语句是。
三、程序填空题(每空3分,共15分)
1.下面程序的功能是:求一个数列中能被3或5整除的所有数之和;请填空完成程序。
#include <stdio.h>
int main()
{
int a[]={3,6,12,7,4,15,20,21,22,30,32,-1},s=0,i;
for(i=0;a[i]>0;i++)
if( ① )
s+=a[i];
printf("s=%d\n",s);
return 0;
}
2.下面程序的功能是:计算s=21+22+……+27,请填空完成程序。
#include <stdio.h>
int main()
{
int a,s,n,count;
a=2,s=0,n=1,count=1;
while(count<=7)
{
② ;
s=s+n;
++count;
}
printf("s=%d\n",s);
return 0;
}
3.下面程序的功能是:计算方阵主对角元素的和;请填空完成程序。
#include <stdio.h>
int main()
{
int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if( ③ )
sum=sum+a[i][j];
printf("sum=%d\n",sum);
return 0;
}
4. 函数insertsubstr的功能是:将字符串s2插入到字符串s1中指定位置c字符前。
如果字
串s1中没有字符c,插入失败,函数返回0,如果有字符c,插入成功,返回1。
请填空完成函数。
int insertsubstr(char *s1, char *s2, char c )
{
char *p1;
p1=strchr( ④ );
if(p1==NULL)
return 0;
else
{
⑤ ;
strcpy( p1, s2 );
return 1;
}
}
四、阅读程序题(每小题5分,共25分)
1. 写出下面程序执行后的结果。
#include <stdio.h>
int main()
{
int i=6,j=0;
do
{
j=j+i;
i--;
}while(i>2);
printf("i=%d,j=%d\n",i,j);
return 0;
}
2. 写出下面程序执行后的结果。
/* 字符'A'的ASCII码值为65 字符'0'的ASCII码值为48
*/
#include <stdio.h>
int main()
{
char a,b;
a='B';
b=33;
a=a-'A'+'0';
b=b*2;
printf("%c,%c\n",a,b);
return 0;
}
3.写出下面程序执行后的结果。
#include <stdio.h>
double fun1(double a)
{
return a*a;
}
int fun2(double x, double y) {
double a=fun1(x),b=fun1(y);
return a+b;
}
int main()
{
int w=fun2(1.3,2.0);
printf("%d\n", w);
return 0;
}
4.写出下面程序执行后的结果。
#include <stdio.h>
int f(int n)
{
if(n<=1)
return 1;
else
return n+f(n-1);
}
int main()
{
printf("%d\n", f(5));
return 0;
}
5.写出下面程序执行后的结果。
#include <stdio.h>
int main()
{
void fun(int *x,int *y);
int x=0,y=2;
fun(&y,&x);
printf("%d%d\n",x, y);
return 0;
}
void fun(int *x,int *y)
{
printf("%d%d",*x,*y);
*x=5;
*y=1;
}
五、程序设计题(每小题10分,共20分)
1. 编程序实现功能:找出1到99之间的全部同构数。
所谓同构数指的是,某数出现在自己
平方数的右边。
例如,5是25右边的数,25是625右边的数,所以5和25都是同构数。
2.编程序实现功能:从键盘上反复输入字符串(直到输入空串为止),将字符串中的所有小写字母转换成对应大写字母(其他字符保持不变)后写入文本文件test2015.txt中。
C程序设计技术模拟试题(一)参考答案
一、单选题答案(每小题2分,共30分)
CACAB BDCCB DABAC
二、概念选择填空题答案(每空2分,共10分)
BHAIG
三、程序填空题答案(每空3分,共15分)
①a[i]%3==0||a[i]%5==0
②n*=a
③i==j
④s1,c
⑤strcat(s2,p1)
四、程序阅读题(每小题5分,共25分)
1.i=2,j=18
2. 1,B
3.5
4. 15
5. 2015
五、程序设计题(每小题10分,共20分)//第1小题参考程序
#include <stdio.h>
int main()
{
int n,m;
for(n=1;n<=99;n++)
{
m=n*n;
if(m%10==n||m%100==n)
printf("%4d",n);
}
printf("\n");
return 0;
}
//第2小题参考程序
#include <stdio.h>
#include <string.h>
int main()
{
FILE *f;
char s[200];
int i,count=0;
f=fopen("test2015.txt","w");
if(!f)
{
puts("Can't open file.");
return -1;
}
while(strlen(gets(s)))
{
for(i=0;s[i];i++)
if(s[i]>='a'&&s[i]<='z')
s[i]-=32;
fputs(s,f);
fputc('\n',f);
}
fclose(f);
return 0; }。