内容正文:
编写说明:《计算机应用考纲百套卷》依据湖南省《计算机应用类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,共62份,第二部分是常考题训练卷,共18份,第三个部分是专业综合训练卷,参考历年计算机应用类专业真题试卷,编写了20份。
本试卷是《计算机应用考纲百套卷》的第78卷,是第二部分常考题训练卷,根据考纲进行解读,本试卷的知识要点如下所示:
①数组的定义和使用。②指针的概念和定义。③数组与指针在程序中的应用。
湖南省《计算机应用考纲百套卷》
《计算机编程语言—C语言》
第78卷
常考题训练卷
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共20小题,每小题3分,合计60分)
1.C语言中,一个2行3列矩阵M的值如下图所示,能够得到M中数值5的表达式是( )
A.*(M+1)+1 B.*(*M+1)+1 C.*(*(M+1)+1) D.**((*M+1)+1)
【答案】C
2.若有定义语句“int a[3][5];”,按内存中的数据存放顺序,a数组的第10个元素是( )
A.a[1][4] B.a[1][3] C.a[2][3] D.a[2][4]
【答案】A
3.下列关于一维整型数组a的说明中,正确的是( )
A.int a(10);
B.int n=10,a[n];
C.int n;scanf(“%d”,&n);int a[n];
D.#define SIZE 10
int a[SIZE];
【答案】D
4.若“char a[6]=“abcd”;”,执行:printf(“%d”,strlen(a));后,输出结果是( )
A.5 B.6 C.7 D.e
【答案】A
5.若:int a[9],*p=a;,并在以后的语句中未改变p的值,则不能表示a[2]地址的是( )
A.p+2 B.a+2 C.p+=2 D.a+=2
【答案】D
6.若有定义:int a[5],*p=a;则对a数组元素的正确引用是( )
A.*&a[5] B.a+2 C.*(p+5) D.*(p+2)
【答案】D
7.若有定义:int a[5], *p=a;则对a数组元素地址的正确引用是( )
A.p+5 B.*a+1 C.&(a+1) D.&a[0]
【答案】D
8.下列程序的运行结果为( )
main()
{char a[20]={"abcdo"};
printf("%d",sizeof(a));getch();}
A.3 B.4 C.5 D.20
【答案】B
9.下列选项中,对数组正确定义的是( )
A.a[123][4] B.a{1}{2} C.a(3)(4) D.a[12](42)
【答案】A
10.下列定义的二维数组元素个数为20的是( )
A.a[123][4] B.b[10][10] C.c[2][10] D.d[10][20]
【答案】C
11.执行以下程序的输出结果是( )
main()
{int a[2][3]={1,2,3,7,8,9},i,sum=1;
for(i=0;i<2;i++)
sum+=a[i][2];
printf("%d",++sum);getch();}
A.13 B.14 C.15 D.16
【答案】B
12.二维数组a[2][4]代表的行数有( )
A.2行 B.4行 C.1行 D.3行
【答案】A
13.执行以下程序的输出结果是( )
main()
{int a[2][3]={1,2,3},s;
s=a[a[1][2]][0]++;
printf("%d",s);getch();}
A.1 B.2 C.3 D.4
【答案】A
14.执行以下程序的输出结果是( )
main()
{char a[ ]="China!",b[ ]="china!";
printf("%d",strcmp(a,b));getch();}
A.-1 B.0 C.1 D.2
【答案】A
15.执行以下程序的输出结果是( )
main()
{int a[3]={1},i;
for(i=0;i<2;i++)
printf("%d",a[i]);getch();}
A.01 B.001 C.10 D.100
【答案】C
16.在C语言中,用于字符串的比较的函数是( )
A.strcpy() B.max() C.strcmp() D.compare()
【答案】C
17.下列描述正确的是( )
A.两个字符串所包含的字符个数相同时,才能比较字符串
B.字符个数多的字符串比字符个数少的字符串大
C.字符串“STOP□”与“STOP”相等(注:□表示空格)
D.字符串“That”小于字符串“The”
【答案】D
18.执行以下程序的输出结果是( )
main()
{char a[ ]="123poi";
int i,s=0;
for(i=0;a[i]>='2'&&a[i]<='3';i++)
s=s*10+a[i]-48;
printf("%d",s+1);getch();}
A.1 B.2 C.3 D.4
【答案】A
19.执行以下程序的输出结果是( )
main()
{char a[ ]="asdfghj",c;
int i=1,sum=5;
for(;(c=a[i+1]!='h');++i)
{switch(c)
{case 's':sum++;break;
case 'd':sum+=4;
default:sum--;}
printf("%d",sum);}getch();}
A.430 B.431 C.432 D.433
【答案】C
20.若有定义:int a[2][3];则对a数组的第i行第j列元素值的正确引用是( )
A.*(*(a+i)+j) B.(a+i)[j] C.*(a+i+j) D.*(a+i)+j
【答案】A
二、程序运行结果题(共6小题,每小题4分,共24分)
21.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
main()
{
char s[10]="abc";
char t[10]="123";
char p[10]="xyz";
strcpy(s+1,t+1);
printf("string=%s",(strcat(s,p+1)));
getch();}
【答案】string=a23yz
22.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
#define N 5
int s(int n)
{int t=0;
while(n)
{t+=n%10;
n=n/10;}
return t;}
void f(int *a)
{int i,j,t,si,sj;
for(i=1;i<N;i++)
{si=s(a[i]);
for(j=0;j<=i;j++)
{sj=s(a[j]);
if(si>sj)
{t=a[i],a[i]=a[j],a[j]=t;}}}}
main()
{
int a[N]={43,35,67,18,50};
int i;
f(a);
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("
");
getch();}
【答案】 67 18 35 43 50
23.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
main()
{ int i=0;
char a[ ]="gows do you do";
char b[ ]="gfdr is knowledge";
for(;i<4;i++)
printf("%d",a[i]-b[i]);getch();}
【答案】09191
24.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
main()
{ char a[ ]="Yes,you are right";
char *p;
p=a;
p+=2;
puts(p);
getch();}
【答案】s,you are right
25.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
main()
{ int j,c;
char a[2][5]={"2025","2026"};
for(j=2;j>-1;j--)
{c=(a[0][j+1]+a[0][j])-2*48;
a[0][j]=c%10+48;}
for(j=0;j<=1;j++)
puts(a[j]);
getch();}
【答案】
9775
2026
26.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
main()
{char a[ ]="HNANSSB",c;
int k;
for(k=0;(c=a[k])!='S';k++)
{switch(c)
{case 'H':printf("%d",'A');
case 'A':putchar('#');break;
default:puts("fdcca");}}
getch();}
【答案】
65#fdcca
#fdcca
三、程序填空题(共1小题,每空4分,合计16分)
27.程序填空。7个待测样本中有且仅有一个样本指标超标,为了找到这唯一超标样本,采用3个检测试剂盒进行检测。方法如下:把7个样本按照1,2,3,……,7进行编号,并将其编号转换为相应的3位二进制数;把可重复使用的3个检测试剂盒进行编号,分别对应3位二进制数的每一位;如果样本编号3位二进制中的某位为1,就用相应的二进制位(编号)的试剂盒进行检测,按照上述方法对每一个待测样本进行检测;最后,检测为阳性(设定值为1)试剂盒编号组成的二进制数就是超标样本的编号。以下程序的功能就是完成上述检测方法并输出超标样本编号,即“flag=7”。
#include <stdio.h>
#include<conio.h>
main()
{ int sample[8]={0,0,0,0,0,0,0,1};
int test[3]={0};
int i,j,k,base=1,flag=0;
for(i=1;i<=7;i++)
{【1】;
j=0;
while(【2】)
{if(k%2==1)
test[j]=test[j]||sample[i];
【3】;
j++;}}
for(i=0;i<3;i++)
{flag+=test[i]*base;
【4】;}
printf("flag=%d",flag);
getch();}
【答案】①k=i ②k或k!=0 ③k=k/2 ④base*=2
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:《计算机应用考纲百套卷》依据湖南省《计算机应用类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,共62份,第二部分是常考题训练卷,共18份,第三个部分是专业综合训练卷,参考历年计算机应用类专业真题试卷,编写了20份。
本试卷是《计算机应用考纲百套卷》的第78卷,是第二部分常考题训练卷,根据考纲进行解读,本试卷的知识要点如下所示:
①数组的定义和使用。②指针的概念和定义。③数组与指针在程序中的应用。
湖南省《计算机应用考纲百套卷》
《计算机编程语言—C语言》
第78卷
常考题训练卷
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共20小题,每小题3分,合计60分)
1.C语言中,一个2行3列矩阵M的值如下图所示,能够得到M中数值5的表达式是( )
A.*(M+1)+1 B.*(*M+1)+1 C.*(*(M+1)+1) D.**((*M+1)+1)
2.若有定义语句“int a[3][5];”,按内存中的数据存放顺序,a数组的第10个元素是( )
A.a[1][4] B.a[1][3] C.a[2][3] D.a[2][4]
3.下列关于一维整型数组a的说明中,正确的是( )
A.int a(10);
B.int n=10,a[n];
C.int n;scanf(“%d”,&n);int a[n];
D.#define SIZE 10
int a[SIZE];
4.若“char a[6]=“abcd”;”,执行:printf(“%d”,strlen(a));后,输出结果是( )
A.5 B.6 C.7 D.e
5.若:int a[9],*p=a;,并在以后的语句中未改变p的值,则不能表示a[2]地址的是( )
A.p+2 B.a+2 C.p+=2 D.a+=2
6.若有定义:int a[5],*p=a;则对a数组元素的正确引用是( )
A.*&a[5] B.a+2 C.*(p+5) D.*(p+2)
7.若有定义:int a[5], *p=a;则对a数组元素地址的正确引用是( )
A.p+5 B.*a+1 C.&(a+1) D.&a[0]
8.下列程序的运行结果为( )
main()
{char a[20]={"abcdo"};
printf("%d",sizeof(a));getch();}
A.3 B.4 C.5 D.20
9.下列选项中,对数组正确定义的是( )
A.a[123][4] B.a{1}{2} C.a(3)(4) D.a[12](42)
10.下列定义的二维数组元素个数为20的是( )
A.a[123][4] B.b[10][10] C.c[2][10] D.d[10][20]
11.执行以下程序的输出结果是( )
main()
{int a[2][3]={1,2,3,7,8,9},i,sum=1;
for(i=0;i<2;i++)
sum+=a[i][2];
printf("%d",++sum);getch();}
A.13 B.14 C.15 D.16
12.二维数组a[2][4]代表的行数有( )
A.2行 B.4行 C.1行 D.3行
13.执行以下程序的输出结果是( )
main()
{int a[2][3]={1,2,3},s;
s=a[a[1][2]][0]++;
printf("%d",s);getch();}
A.1 B.2 C.3 D.4
14.执行以下程序的输出结果是( )
main()
{char a[ ]="China!",b[ ]="china!";
printf("%d",strcmp(a,b));getch();}
A.-1 B.0 C.1 D.2
15.执行以下程序的输出结果是( )
main()
{int a[3]={1},i;
for(i=0;i<2;i++)
printf("%d",a[i]);getch();}
A.01 B.001 C.10 D.100
16.在C语言中,用于字符串的比较的函数是( )
A.strcpy() B.max() C.strcmp() D.compare()
17.下列描述正确的是( )
A.两个字符串所包含的字符个数相同时,才能比较字符串
B.字符个数多的字符串比字符个数少的字符串大
C.字符串“STOP□”与“STOP”相等(注:□表示空格)
D.字符串“That”小于字符串“The”
18.执行以下程序的输出结果是( )
main()
{char a[ ]="123poi";
int i,s=0;
for(i=0;a[i]>='2'&&a[i]<='3';i++)
s=s*10+a[i]-48;
printf("%d",s+1);getch();}
A.1 B.2 C.3 D.4
19.执行以下程序的输出结果是( )
main()
{char a[ ]="asdfghj",c;
int i=1,sum=5;
for(;(c=a[i+1]!='h');++i)
{switch(c)
{case 's':sum++;break;
case 'd':sum+=4;
default:sum--;}
printf("%d",sum);}getch();}
A.430 B.431 C.432 D.433
20.若有定义:int a[2][3];则对a数组的第i行第j列元素值的正确引用是( )
A.*(*(a+i)+j) B.(a+i)[j] C.*(a+i+j) D.*(a+i)+j
二、程序运行结果题(共6小题,每小题4分,共24分)
21.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
main()
{
char s[10]="abc";
char t[10]="123";
char p[10]="xyz";
strcpy(s+1,t+1);
printf("string=%s",(strcat(s,p+1)));
getch();}
22.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
#define N 5
int s(int n)
{int t=0;
while(n)
{t+=n%10;
n=n/10;}
return t;}
void f(int *a)
{int i,j,t,si,sj;
for(i=1;i<N;i++)
{si=s(a[i]);
for(j=0;j<=i;j++)
{sj=s(a[j]);
if(si>sj)
{t=a[i],a[i]=a[j],a[j]=t;}}}}
main()
{
int a[N]={43,35,67,18,50};
int i;
f(a);
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("
");
getch();}
23.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
main()
{ int i=0;
char a[ ]="gows do you do";
char b[ ]="gfdr is knowledge";
for(;i<4;i++)
printf("%d",a[i]-b[i]);getch();}
24.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
main()
{ char a[ ]="Yes,you are right";
char *p;
p=a;
p+=2;
puts(p);
getch();}
25.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
main()
{ int j,c;
char a[2][5]={"2025","2026"};
for(j=2;j>-1;j--)
{c=(a[0][j+1]+a[0][j])-2*48;
a[0][j]=c%10+48;}
for(j=0;j<=1;j++)
puts(a[j]);
getch();}
26.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
main()
{char a[ ]="HNANSSB",c;
int k;
for(k=0;(c=a[k])!='S';k++)
{switch(c)
{case 'H':printf("%d",'A');
case 'A':putchar('#');break;
default:puts("fdcca");}}
getch();}
三、程序填空题(共1小题,每空4分,合计16分)
27.程序填空。7个待测样本中有且仅有一个样本指标超标,为了找到这唯一超标样本,采用3个检测试剂盒进行检测。方法如下:把7个样本按照1,2,3,……,7进行编号,并将其编号转换为相应的3位二进制数;把可重复使用的3个检测试剂盒进行编号,分别对应3位二进制数的每一位;如果样本编号3位二进制中的某位为1,就用相应的二进制位(编号)的试剂盒进行检测,按照上述方法对每一个待测样本进行检测;最后,检测为阳性(设定值为1)试剂盒编号组成的二进制数就是超标样本的编号。以下程序的功能就是完成上述检测方法并输出超标样本编号,即“flag=7”。
#include <stdio.h>
#include<conio.h>
main()
{ int sample[8]={0,0,0,0,0,0,0,1};
int test[3]={0};
int i,j,k,base=1,flag=0;
for(i=1;i<=7;i++)
{【1】;
j=0;
while(【2】)
{if(k%2==1)
test[j]=test[j]||sample[i];
【3】;
j++;}}
for(i=0;i<3;i++)
{flag+=test[i]*base;
【4】;}
printf("flag=%d",flag);
getch();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$