2017年下期对口升学计算机专业第一次月考综合类C语言试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2017年下期对口升学计算机专业综合类C语言试题
总分190分
一、单选择题(每题5分,共60分)
1、定义一个文件指针fp语句,以下正确的是()
A、file fp
B、file *fp;
C、FILE *fp
D、FILE *fp;
2、以只读的方式打开一个二进文件c:\tlh\1.txt的语句()
A、fp=fopen(“c:\\tlh\\1.txt”,”wb”);
B、fp=fopen(“c:\\tlh\\1.txt”,”w”);
C、fp=fopen(“c:\\tlh\\1.txt”,”r”);
D、fp=fopen(“c:\\tlh\\1.txt”,”rb”);
3、以下程序段输出的结果是()
int a[]={1,2,3,4,5,6};
FILE *fp;
fp=fopen(“1.txt”,”wb”);
fwrite(a+1,sizeof(int),5,fp);
fclose(fp);
fp=fopen(“1.txt”,”r b”);
fread(a,sizeof(int),3,fp);
fclose(fp);
fprintf(“%d”,a[3]);
A、4
B、5
C、6
D、3
4、有以下程序
main()
{char s[]="012xy\08s34f4w2";
int i, n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n",n);
}程序运行后的输出结果是()
A)0 B)3 C)7 D)8
5、有以下程序:
#include<stdio.h>
#include<string.h>
main()
, char a*5+*10+=,“china”,”beijing”,”you”,”tiananmen”,”welcome”-;
int i,j; char t[10];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(strcmp(a[i],a[j])>0)
{ strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[i],t);}
puts(a[3]);
}程序运行后的输出结果是()
A.beijing
B.china
C.welcome
D.tiananmen
6、有以下程序
#include <stdio.h>
#include <string.h>
main()
,char x*+=”STRING”;
x*0+=0;x*1+=’\0’;x*2+=’0’;
printf(“%d %d\n”,sizeof(x),strlen(x));
}程序运行后的输出结果是()
A)6 1 B)7 0 C)6 3 D)7 1
7、若有定义语句:int m[]={5,4,3,2,1},i=4;则下面对m数组元素的引用中错误的是()
A)m[--i] B)m[2*2] C)m[m[0]] D)m[m[i]]
8、若要定义一个具有5个元素的整型数组,以下错误的定义语句是()
A)int a[5]={0}; B)int b[]={0,0,0,0,0};
C)int c[2+3]; D)int i=5,d[i];
9、以下数组定义中错误的是()
A)int x[][3]={0};
B)int x[2][3]={{1,2},{3,4},{5,6}};
C)int x[][3]={{1,2,3},{4,5,6}};
D)int x[2][3]={1,2,3,4,5,6};
10、从指定的文件中得到6个字符语句是()
A、fgets(a,6,fp);
B、fgets(a,7,fp);
C、fgets(fp,6,a);
D、fgets(fp,7,a);
11、有以下程序
#include<stdio.h>
main()
{FILE *fp;
int k,n,i,a[6]={1,2,3,4,5,6};
fp=fopen(“d2.dat”,”w”);
for(i=0;i<6;i++) fprintf(fp,”%d\n”,a*i+);
fclose(fp);
fp=fopen(“d2.dat”,”r”);
for(i=0;i<3;i++) fscanf(fp,”%d%d”,&k,&n);
fclose(fp);
printf(“%d,%d\n”,k,n);
}程序运行后的输出结果是()
A.1,2
B.3,4
C.5,6
D.123,456
12、有以下程序
#include <stdio.h>
main()
{FILE *f;
f=fopen(“filea.txt”,”w”);
fprintf(f,”abc”);
fclose(f);
}若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt的内容为()
A)helloabc B)abclo C)abc D)abchello
二、程序分析题
13读程序写运行结果(每题5分,共25分)
①程序运行后的输出结果是
#include <stdio.h>
main()
{int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i;j<3;j++) printf(“%d”,a*i+*j+);
printf(“\n”);
}
②有以下程序
#include <stdio.h>
main()
{FILE *fp;char str[10];
fp=fopen(“myfile.dat”,”w”);
fputs(“abc”,fp);fclose(fp);
fp=fopen(“myfile,data”,”a+”);
fprintf(fp,”%d”,28);
rewind(fp);
fscanf(fp,”%s”,str);puts(str);
fclose(fp);
}程序运行后的输出结果是___________
③、以下程序运行后的输出结果是【】。

main()
{
FILE *fp; int x[6]={1,2,3,4,5,6},i;
fp=fopen("test.dat","wb");
fwrite(x+1,sizeof(int),3,fp);
rewind(fp);
fread(x,sizeof(int),3,fp);
for(i=0;i<6;i++) printf("%d",x[i]);
printf("\n");
fclose(fp);
}
④有以下程序
#include <stdio.h>
#define N 8
void fun(int *x,int i)
{ *x=*(x+i); }
main()
{int a[N]={1,2,3,4,5,6,7,8},i;
fun(a,2);
for(i=0;i<N/2;i++)
, printf(“%d”,a*i+);-
printf(“\n”);
}程序运行后的输出结果是________
⑤、#include<stdio.h>
int f(int x,int y)
{return ((y-x)*x);}
main()
{
int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf(“%d\n”,d);
}程序运行后的输出结果是________ 三、程序填空(每空5分,共20分)
14、设文件中1.txt中存放了一组字符串,以下程序功能是:统计并输出文件1.txt 中英文字母,阿拉伯数字,空格符,其他字符的个数,请填空。

#include<stdio.h>
main()
{
int n1=0,n2=0,n3=0,n4=0;
char t;
FILE *fp;
fp=fopen(“1.txt”,”r”);
if(fp==NULL)
{printf(“can’t open the file!!”);
}
else
{
while(!feof(fp))
{
(_________);
if(___________)n1++;
else if(_________)n2++;
eseif(______)n3++;
else n4++;
}
fclose(fp);
printf”数字%d英文字母%d空格%d其他字符%d”,n1,n2,n3,n4);
}
四、程序改错
15、读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。

请在答题卡中指出错误代码所在的行号,并给出该行修改后的程序代码。

(1)下面程序的功能是打印如图7所示的图形。

以下程序只允许修改两行。


氺氺氺
氺氺氺氺氺
氺氺氺

图7
L1 #include <stdio.h>
L2 int main( )
L3 { int i,j,k,b;
L4 for(i=l;i<=5;i++)
L5 { b=3-i;
L6 for(j=b;j>0;j- -)
L7 printf(" ");
L8 for(k=5-b;k>0;k- -)
L9 printf("*");
L10 printf("\n");
L11
L12 return 0;
L13 }
下面函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。

以下程序只允许修改两行。

L1 #include<stdio.h>
L2 void fun(char s[]){
L3 int i=O,j=0;
L4 for( ; s[i]!=´\O´; i++)
L5 if(s[i]>=´O´&s[i]<=´9´){
L6 s[j]=s[i];
L7 j--;
L8 }
L9 s[j]=´\O´;
L10 }
五、程序设计(每空5分,共25分)
16、一个数列的通项为:an=10n,n=0, 1, 2, 3……,构成了 1, 10,100, 1000,…,把它们连起来,就成了数串:110100100010000...。

现从键盘输入一个正整数n(n<10000) 用来表示这个数串的第n位,函数judge()的功能是用来输出数串第n位的值(0或1 )。

#include "stdio.h"
int judge(int n)
{ int i; int k=1;
for(i=0; _____①_____ ;i ++_____②_____ )
_______③__________
return (___________④_________);
}
int main()
{ int n;
printf("input a number,n=");
scanf("%d”,&n);
printf("the value of %d bit is:%d\n,n,____⑤_________);
return 0;
}
2017年永州工贸学校对口升学15级计算机专业C语第一次月考答题卡班级姓名成绩
一、单选题(每题5分,共60分)
二、程序分析题(本大题共3小题,共75分)
13、阅读程序写结果(共5小题,每小题5分,共25分)
①_________ ②_________ ③_________
④_________⑤_________
三、程序填空(每空5分,共20分)
①_________ ②_________
③_________ ④_________
四、程序改错(每处5分,共20分)
①行号:改正:
行号:改正:
②行号:改正:
行号:改正:
五、程序设计(每空6分共24分)
16、①________________ ②_____________
③________________ ④_____________。

相关文档
最新文档