收藏 分销(赏)

四川计算机C语言考试笔试真题模拟32次含答案.docx

上传人:快乐****生活 文档编号:3584450 上传时间:2024-07-10 格式:DOCX 页数:25 大小:19.41KB
下载 相关 举报
四川计算机C语言考试笔试真题模拟32次含答案.docx_第1页
第1页 / 共25页
四川计算机C语言考试笔试真题模拟32次含答案.docx_第2页
第2页 / 共25页
点击查看更多>>
资源描述
四川计算机C语言考试笔试真题32次含答案 四川省普通高等学校计算机应用知识和能力 第三十二次等级考试 二级(C与C++语言) 笔 试 试 卷 时间: 4月 17 日 上午 9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在程序设计中,常见一维数组来表示线性表的顺序存储空间。 ( 1 ) 2. 软件测试的目的是为用户提供没有错误的程序。 ( 2 ) 3. 栈顶的位置只能进行进栈操作不能进行退栈操作。 ( 3 ) 4. 处于等待状态的进程,若其等待的事件已发生,就立即转入运行状态。 ( 4 ) 5. 线性表若采用链式存储表示时其结点之间的存储单元地址能够不连续。 ( 5 ) 6. 在进行插入排序时,其数据比较次数与数据的初始排列有关。 ( 6 ) 7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 7 ) 8. 在操作系统中,进程最基本的特征是静态性和并发性。 ( 8 ) 9. 软件危机是由于软件产品过多而产生的。 ( 9 ) 10.面向过程系统需求分析使用的主要工具是数据流图和数据字典。 ( 10 ) 二、选择题(每小题1分,共5分) 1. 进程从运行状态进入就绪状态的原因可能是( 11 ) 。 11 (A) 时间片用完 (B) 等待某一事件 (C) 等待的事件已发生 (D) 被选中占有处理机 2. 需求分析中开发人员主要从用户那里了解( 12 )。 12 (A) 软件怎样做 (B) 软件做什么 (C) 输入的信息 (D) 软件的测试 3. 队列的操作原则是( 13 )。 13 (A) 先进后出 (B) 先进先出 (C) 只进不出 (D) 只出不进 4. 在需要经常查找结点的前驱后后继的情况下,使用( 14 )比较合适。 14 (A) 单链表 (B) 循环链表 (C) 双链表 (D) 顺序表 5. 任何两个并发进程之间 ( 15 )。 15 (A) 一定存在互斥关系 (B) 一定存在同步关系 (C) 一定彼此独立无关 (D) 可能存在同步或互斥关系 第二部分 C与C++语言程序设计 (共85分) 一、单项选择题 ( 每小题1分,共10分 ) 1. 若x和y为double类型,则表示式x=1,y=x+3/2的值为( 16 ) 。(考点:数据类型、运算符) 16 (A) 1 (B) 2 (C) 2.0 (D) 2.5 2. 如果a,b,c,x,y均为int型变量,x=5,y=10,则执行下面语句后,a,b,c的值分别为( 17 )。 a=(--y==x++)?--y:++x; (考点:数据类型、运算符) b=y++; c=x; 17 (A) a=7,b=9,c=7 (B) a=7,b=9,c=6 (C) z=6,b=9,c=7 (D) z=6,b=9,c=6 3. 执行下面语句段的输出结果是( 18 )。(考点:逻辑运算符) int i=1,j=1,k=2; if( (j++||k++)&&i++) printf("%d,%d,%d\n", i, j , k ); 18 (A) 1 , 1 , 2 (B) 2 , 2 , 1 (C) 2 , 2 , 2 (D) 2 , 2 , 3 4. 若要求表示 “a不等于0”的关系,则不能正确表示这一关系的表示式为( 19 )。(考点:关系运算) 19 (A) a<>0 (B) a (C) a>0||a<0 (D) a!=0 5. 若有说明int a,*p=&a; 则scanf("%d",*p);语句不能正确为变量赋值的原因是( 20 )。(考点:指针) 20 (A) *p表示的是指针变量p的地址 (B) *p表示的是变量a的值,而不是变量a的地址 (C) *p表示的是指针变量p 的值 (D) *p只是用来说明p是一个指针变量 6. 若有如下说明,则能使指针变量p的值增加的表示式是( 21 )。(考点:结构体指针) struct ws { int a; int *b; }*p; 21 (A) ++p->a (B) p->b++ (C) p->a++ (D) (p++)->a 7. 以下能对二维数组a进行正确初始化的是( 22 )。(考点:二维数组) 22 (A) int a[2][]={{1,0,1},{5,2,3}}; (B) int a[][3]={{1,2,3},{4,5,6}}; (C) int a[2][4]={{1,2,3},{4,5},{6}}; (D) int a[][3]={{1,0,1},{},{1,1}}; 8. 有以下结构体说明和变量定义:(考点:链表操作) struct node { int data; Struct node *next; }*p,*q,*r; 建立如图所示的链表结构,指针变量p、q分别指向如图所示的结点,指针变量r指向一新结点,则能够实现将r指向的结点插入到p、q所指结点之间的语句组是( 23 )。 23 (A) q=r; p->next=q->next; (B) p->next=r; r->next=p->next; (C) r->next=q; p->next=r; (D) p=r; r->next=q; 9. 以下程序的运行结果为( 24 )。(考点:宏定义) # define <stdio.h> # define PT 3.5 # define S(x) PT*x*x void main() { int a=1,b=2; printf("%4.1f\n", S(a+b) ); } 24 (A) 14.0 (B) 31.5 (C) 7.5 (D) 10.5 10. 下面程序段的运行结果为 ( 25 ) 。(考点:位运算) int a=9,b=020; printf("%o\n", ~a&b<<1 ); 25 (A) 40 (B) 41 (C) 42 (D) 43 二、读程序回答问题 ( 每个选择3分,共45分 ) 1. 有如下程序:(考点:字符数组、函数(地址参数)) int count(char *str,char substr[20]) { int i,j,k,num=0; for(i=0; *(str+i)!='\0'; i++) { j=i; k=0; while(substr[k]==str[j]) { k++;j++; } if(substr[k]=='\0') num++; } return num; } void main() { char str[80],substr[20]; gets(str); gets(substr); printf("%d\n",count(str,substr)); } (1) 若运行程序时输入abcdabad和ab两个字符串,则输出结果为( 26 )。 26 (A) 3 (B) 4 (C) 2 (D) 11 (2) 该程序的功能是( 27 )。 27 (A) 比较两个字符串str和substr的大小 (B) 统计子串substr在母串str中出现的次数 (C) 将子串substr复制到母串str中 (D) 统计两个字符串中字符的总个数 2. 有下列程序(考点:函数) # include <stdio.h> int fun(int a,int b) { static c=0; if(a>b) c=c+a; else c=c+b; return c; } void main() { int a=2,b=5,c=6,d; d=fun(2*a,fun(b,c)); printf("%d",d); } (1) fun(2*a,fun(b,c))的函数调用中,实参的个数为( 28 )。 28 (A) 1 (B) 2 (C) 3 (D) 4 (2) 程序的运行结果是( 29 )。 29 (A) 6 (B) 10 (C) 12 (D) 15 3. 有下列程序(考点:带参数的宏定义) # include <stdio.h> # define M(x,y) ((x%y==1)?1:0) int fun(int *a,int n) { int i,s=0; for(i=0;i<n;i++) if( M(a[i],2) && M(a[i],3) ) s=s+a[i]; return s; } void main() { int a[]={1,2,3,4,5,6,7}; printf("%d\n",fun(a,7)); } (1) 宏调用M(a[i],2) && M(a[i],3)为真时所要表示的是( 30 )。 30 (A) 判断a[i]是否能被2或3整除 (B) 判断a[i]是否能被2和3整除 (C) 判断a[i]被2或3整除时,是否至少有一种情况余1 (D) 判断a[i]被2和3整除时,是否都余1 (2) 程序的运行结果是( 31 )。 31 (A) 15 (B) 6 (C) 16 (D) 8 4. 有下列程序(考点:函数(地址参数)、指针运算) # include "stdio.h" void prt(int *x,int *y,int *z) { printf("%d,%d,%d\n",++*x,++*y,*(z++)); } void main() { int a=10,b=40,c=20; prt(&a,&b,&c); prt(&a,&b,&c); } (1) 第一次调用函数prt的运行结果是( 32 )。 32 (A) 11,42,31 (B) 11,41,20 (C) 11,21,40 (D) 11,41,21 (2) 第二次调用函数prt的运行结果是( 33 )。 33 (A) 12,42,20 (B) 12,22,41 (C) 11,21,41 (D) 12,42,22 5. 有如下程序(考点:全局变量和局部变量、函数(地址参数)、) # include <stdio.h> int b=1; int fun(int *a) { int b=0; b=b+a[0]; return b; } void main() { int a[]={1,2,3,4,5,6},i; for(i=0;i<2;i++) { b=b+fun(a+i); printf("%d ",b); } } (1) 程序的运行结果是( 34 )。 34 (A) 2 4 (B) 4 12 (C) 2 3 (D) 4 10 (2) 若将函数fun中的定义“int b=0;”去掉,则程序的运行结果为( 35 )。 35 (A) 2 4 (B) 4 12 (C) 2 3 (D) 4 10 6. 有如下程序(考点:字符数组、函数(地址参数)、逻辑表示式) #include <stdio.h> void fun(char *s,char *t1,char *t2) { int i,j=0; for(i=0;s[i]!='\0';i++) { if(i%2&&(s[i]>='a'&&s[i]<='z')) t1[i]=s[i]-'a'+'A'; else t1[i]=s[i]; if(s[i]>='0'&&s[i]<='9') { t2[j]=s[i]; j++; } } t1[i]=t2[j]='\0'; } void main() { char s[20]="2abcde3fg45",t1[20],t2[20]; fun(s,t1,t2); puts(t1); puts(t2); } (1)程序中第一个puts的输出结果为( 36 ) 36 (A) abcdefg (B) 2345 (C) 2AbCdE3Fg45 (D) 2aBcDe3fG45 (2)程序中第二个puts的输出结果为( 37 ) 37 (A) abcdefg (B) 2345 (C) 2AbCdE3Fg45 (D) 2aBcDe3fG45 7. 有如下程序:(考点:命令行参数、宏定义、条件运算符) # include <stdio.h> # define IsAlpha(c) c>='a'&&c<='z'?1:0 void main(int argc,int **argv) { char *str,cx; int cn=0; if(argc<2) return; str=(*++argv); while(*str) { cx=(*str++); if(IsAlpha(cx)) cn++; } printf("%d\n",cn); } 若上述程序经编译连接后形成的可执行文件名为:2-8.exe (1) 当输入命令行: 2-8.exe 2abHc abA2时,输出为( 38 )。 38 (A) 5 (B) 3 (C) 1 (D) 2 (2) 上述程序的功能是( 39 )。 39 (A) 命令行第一参数2abHc中出现的小写字母个数 (B) 命令行第一参数2abHc中出现的大写字母个数 (C) 命令行第二参数abA2中出现的小写字母个数 (D) 命令行第二参数abA2中出现的大写字母个数 8. 有如下程序:(考点:文件、大小写字母转换方法 ) # include <stdio.h> void main() { char ch; FILE *fp; if((fp=fopen("test.dat","r+"))==NULL) { printf("Can not open file.\n"); exit(0); } ch=fgetc(fp); while(ch!=EOF) { if(ch>='a'&&ch<='z') ch-=32; else if(ch>='A'&&ch<='Z') ch+=32; putchar(ch); ch=fgetc(fp); } fclose(fp); } 若磁盘文件test.dat中的内容为ab12HD,则程序运行结果为( 40 )。 40 (A) ab12HD (B) Ab12hD (C) aB12Hd (D) AB12hd 注意:① 请把下面“程序填空”中各小题答案写在主观题答题纸上 ② 每一个空只填一个语句或一个语句所缺的部分内容 三、程序填空 ( 每空2分,共30分 ) 1. 以下程序能计算数列1/2,3/4,1/6,3/8,1/10,3/12…的前15项之和。请填空。(考点:序列处理算法) # include <stdio.h> # define N 15 void main() { int i; double sum=0.0,a,b=0.0; for(i=0;i<N;i++) { if(① ) a=② ; else a=1.0; b+=2.0; sum+=③ ; } printf("1/2+3/4+1/6...+1/30=%f\n",sum); } 2. 一结构体数组中放置了10名学生的学号和成绩(成绩互不相同),程序功能是求出学生的最高分,输出她的学号和成绩。请填空。(考点:结构体数组、求最值算法) # include <stdio.h> typedef struct sutdent { char no[10]; int score; }ST; void main() { ST s[10]={{"A01",65},{"A02",70},{"A03",60},{"A04",84},{"A05",82}, {"A06",90},{"A07",75},{"A08",72},{"A09",95},{"A10",93}}; int max,i,maxi; max=s[0].score; maxi=0; for(i=1;i<10;i++) if(s[i].score① max) { max=② ; maxi=③ ; } printf("Max: No %s; Score %d\n",s[maxi].no,s[maxi].score); } 3. insert()函数在一维数组y中把x插到下标为i的元素之前,i≥0。如果i大于等于元素个数则插在末尾。原有的元素个数存放在指针变量n所指的变量中。请填空。(考点:数组、插入元素算法) # include <stdio.h> # define N 11 void insert(int y[],int *n,int x,int i) { int j; if(i<*n) for(j=*n-1; ① ; j--) ② =y[j]; else i=*n; y[i]= ③ ; (*n)++; } void main() { int y[N]={0,1,2,3,4,5,6,7,8,9},x,i,*n,j; j=N-1; printf("\nPlease input x: "); scanf("%d",&x); printf("\nPlease input i: "); scanf("%d",&i); insert(y,&j,x,i); for(j=0;j<N;j++) printf("%d ",y[j]); } 4. 下面程序能将Hello!反向打印出来。请填空。(考点:函数(地址参数)、字符数组、递归算法) # include <stdio.h> void main() { int print_hello(char *); print_hello("\nHello!\n"); } int print_hello(char *string) { char *str=string; if(*str==① ) return; while(*str) ② ; --str; printf("%c",*str); ③ ; print_hello(string); } 5. 函数fun的功能是:根据以下公式计算s,计算结果经过形参指针sn传回;n经过形参传入,n的值大于等于0。请填空。 (考点:循环、序列处理算法) # include <stdio.h> void main() { void fun(float *,int ); float a; int k=2; fun(&a,k); printf("%f\n",a); } void fun(float *sn,int n) { float s=0.0,w,f=-1.0; int i=0; for(i=0;i<=n;i++) { f=① *f; w=f/② ; s+=w; } ③ =s; } 第三十二次等级考试 第一部分 软件技术基础 一、是非判断题(每小题1分,共10分) 1~10:ABBBA AABBA 二、选择题(每小题1分,共5分) 1~5 :ABBCD 第二部分 C与C++语言程序设计 一、单项选择题 (每小题1分,共10分) 1、C 2、A 3、C 4、A 5、B 6、D 7、B 8、C 9、C 10、A 二、读程序题(每个选择3分,共45分) 1、C B 2、B C 3、D D 4、B A 5、A B 6、C B 7、B A 8、D 三、程序填空题(每空2分,共30分) 1、① i%2==1 ② 3 ③ a/b 2、① > ② s[i].score ③ i 3、① j>=i ② y[j+1 ③ i 4、① ‘\0’ ② str++ ③ *str=’\0’ 5、① -1 ② (2*i+1) ③ *sn
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服