收藏 分销(赏)

2024年二级C模拟题.doc

上传人:天**** 文档编号:8191368 上传时间:2025-02-07 格式:DOC 页数:13 大小:63.04KB 下载积分:8 金币
下载 相关 举报
2024年二级C模拟题.doc_第1页
第1页 / 共13页
2024年二级C模拟题.doc_第2页
第2页 / 共13页


点击查看更多>>
资源描述
一、选择题 1. 如下论述不正确的是( )。 A)C语言的执行总是从 main函数开始 B)一个C源程序必须包括一个main函数 C)C语言程序的基本组成单位是函数 D)在编译C程序源程序时,可发觉注释中的拼写错误 2.如下( )是错误的整型常量。   A)-0xcdf B)018 C)0xe D)011 3.若有定义:int a,b;double x,则如下不符合C语言语法的体现式是( )。   A)x%(-3) B)a+=-2 C)a=b=2 D)x=a+b 4.若有定义:int i,j;则体现式(i=2,j=5,i++,i+j++)的值是( )。   A)7 B)8 C)9 D)10 5.已经有如下定义和输入语句 int a;char c1,c2; scanf(“%d%c%c”,&a,&c1;&c2); 若要求a、c1、c2的值分别为10、A和B,正确的数据输入是( )。   A)10AB B)10 A B C)10A B D)10 AB 6.若希望当a的值为奇数时,体现式的值为“真”,a的值为偶数时,体现式的值为“假”。则不能满足要求的体现式是( )。   A)a%2==1 B)!(a%2==0) C)!(a%2) D)a%2 7.若有定义:int a=2,b=3;float x=3.5,y=2.5;则体现式float(a+b)/2+(int)x%(int)y的值为 ( ). A)3.5 B)3.0 C)2.5 D)2.0 8.如下程序的运行成果是( )。 void main() {int n=’e’; swithc(n--) {default:printf(”error”); case ’a’: case ’b’: printf(”good”);break; case ’c’: printf(”pass”); case ’d’: printf(”warn”); }} A)error B)good C)error good D)warn 9.如下程序的运行成果是( )。 void main() {int sum=0,item=0; while(item<5) {item++; sum+=item; if(sum==5) break; } printf(”%d\n”,sum); } A)10 B)15 C)5 D)6 10.下面程序段的运行成果是( )。 int i=0,a[]={3,4,5,4,3}; do{ a[i]++; }while(a[++i]<5); for(i=0;i<5;i++) printf(”%d”,a[i]);   A)4 5 6 5 4 B)3 4 5 4 3 C)4 5 5 5 4 D)4 5 5 4 3 11.若有定义:int a[2][3];则对数组元素的非法引用是( )。 A)a[0][1/2] B)a[1][1] C)a[4-4][0] D)a[0][3] 12.如下程序段运行后屏幕输出为( )。 char str[]=”ab\\cd”; printf(”%d”,strlen(str));   A)4 B)5 C)6 D)7 13.若有如下函数定义:   int fun() { static int k=0; return ++k;} 如下程序段运行后屏幕输出为( )。 int i; for(i=1;i<=5;i++) fun(); printf(”%d”,fun());} A)0 B)1 C)5 D)6 14.下面程序的输出成果是( ) #include<stdio.h> #define SQR(x) (x*x) void main() {int a,b=3; a=SQR(b+2); printf(”\n%d”,a); } A)11 B)25 C)不定值 D)产生错误 15.有阐明语句:double *p,a;能通过scanf语句正确给输入项读入数据的程序段是( )。 A)*p=&a;scanf(”%lf”,p); B)*p=&a;scanf(”%lf”,*p); C)p=&a;scanf(”%lf”,*p); D)p=&a;scanf(”%lf”,p); 16.下面程序的输出成果是( ) #include<stdio.h> void main() {int i; char *s=”abc”; for(i=0;i<3;i++) printf(”%s\n”,s+i); } A)abc B)c C)abc D)a bc bc c ab c abc bc abc 17.如下程序的运行成果是( )。 #include<stdio.h> union Utype{ int i; float f; }u[2]; void main() {printf(”sizeof(u):%d\n”,sizeof(u));} A)2 B)4 C)6 D) 8 18. 若有如下定义,函数fun的功效是( )。其中head指向链表首结点,整个链表结构如下图: data NULL data data   head …   struct node{ int data; struct node *next; }; int fun(struct node *head) {int n=0; struct node *t=head; while(t!=NULL) { n++; t=t->next; } return n; } A)删除链表head中的所有结点 B)计算链表head中结点的个数 C)插入一个元素到链表head中 D)创建一个链表head 19.下面程序的输出成果为( )。 #include<stdio.h> void main() {enum Weekday{sun=7,mon=1,tue,wed,thu,fri,sat}; enum Weekday day=sat; printf(”%d\n”,day); } A)7 B)6 C)5 D)4 20.如下程序的可执行文献名为cmdline.exe。 #include<stdio.h> #include<stdlib.h> void main(int argc,char *argv[]) { if(argc!=2) {printf(”You forgot to type your name or you typed more parameters\n”); exit(1);} printf(”Hello %s\n”,argv[1]); } 在DOS命令行输入:cmdline harry<回车>,则输出成果是( )。 A) You forgot to type your name or you typed more parameters B) Hello harry C) Hello cmdline D) hello 二、改错题(共2小题,每题10分) 1.程序cmody071.c,其功效是从键盘输入三角形的三边长,求其面积,若三个边长不能组成三角形,则提示。 如 输入:6 9 11 输出: 26.98 #include <stdio.h> #include <math.h> void main() {float a[3],s,area; int i; printf(”Please input 3 numbers:\n”); for(i=0;i<3;i++) scanf(“%f”,/**/ /**/); /**/ if(a[0]+a[1]>a[2]||a[1]+a[2]>a[0]||a[0]+a[2]>a[1]) /**/ {s=(a[0]+a[1]+a[2])/2; area=sqrt(s*(s-a[0])*(s-a[1])*(s-a[2]))l printf(”area is %.2f\n”,area);} else printf(”error.\n”); getch(); } 2.程序cmody072.c其功效是求解百马百担问题。   有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马数可分别为多少?有多少种处理方案? #include<stdio.h> #include<ocnio.h> /**/ void fun()/**/ {int large,middle,small,n=0; clrscr(); for(large=0;large<=33;large++) for(middle=0;middle<=50;middle++) {small=2*(100-3*large-2*middle); /**/if(large+middle+small=100)/**/ {n++; printf(”%d-->large:%d,middle:%d,small%d\n”,n,large,middle,small); } } return n;} void main() {int num; num=fun(); printf(”\nThere are %d solutions.\n”,num); getch(); } 三、填空题(共3小题,每题8分) 1.补充程序Ccon071.c,对函数,分别计算和的值。 如x=2.0,则输出:f(x+8)=86.000 f(sinx)=5.008 #include<stdio.h> /**/ /**/ double fun(double x) {/**/ /**/ } void main() {double x,y1,y2; clrscr(); printf(“Please input x:”); scanf(“%lf”,&x); y1=fun(x+8); y2=fun(/**/ /**/); printf(“\nf(x+8)=%.3lf”,y1); printf(“\nf(sinx)=%.3lf”,y2); getch(); } 2.补充程序Ccon072.c,计算,其中m、n为整数且m>n≥0。 #include<stdio.h> double fun(unsigned m,unsigned n) {unsigned i; double p=1.0; for(i=1;i<=m;i++) /**/ /**/ for(i=1;i<=n;i++) /**/ /**/ for(i=1;i<=m-n;i++) p=p/I; return p; } void main() {clrscr(); printf(“p=%f\n”,fun(13,7)); getch(); } 3.补充程序Ccon073.c,函数findmax返回数组中的最大元素。 #include<stdio.h> int findmax(int *array,int size); void main() {int a[]={33,91,23,45,56,-12,32,12,5,90}; clrscr(); printf(“The max is %d\n”,/**/ /**/); getch(); } int findmax(int *array,int size) {int i,/**/ /**/; for(i=1,i<size;i++) if(array[i]>max)max=array[i]; return max; } 四、编程题(共2小题,每题8分) 1.打开程序cprog071.c,完成其中的f()函数,使其对输入的一个月工资数额,求应交税款,设应交税款的计算公式如下: 例如:输入:1825输出:f(1825)=11.25 输入:2700输出:f(2700)=85.00输入:5655输出:f(5655)=483.25 #include<stdio.h> #include<math.h> double f(float x) {/**/ /**/ } void main() { float x; double y; printf (”Please input x: \n”); scanf(”%f”,&x); y=f(x); printf (”f(%.2f)=%.2f\n”,x,y); getch(); } 2. 打开程序cprog072.c,完成其中的fun()函数,使程序输出4阶矩阵A中的各行中0之前的所有正数,遇到0则跳过该行,并计算这些输出正数之和。如矩阵A为 ,则输出1,2,23,32 s=58。 #include<stdio.h> #define ROW 4 #define COL 4 int fun(int a[][COL],int row int b[]) { /**/ /**/ } void main() {int sss=0,b[16]={0}; int a[ROW][COL]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; clrscr(); sss=fun(a,ROW,b); printf(”\nSum of positive elements is %d \n”,sss); getch(); } 一、选择题 1.D  2.B  3.A  4.B   5.A  6.C  7.A  8.C  9.B  10.D 11.D 12.B 13.D 14.A 15.D 16.A 17.D 18.B 19.B 20.B 二、改错题 1. scanf(“%f”,&a[i]); if(a[0]+a[1]>a[2]&&a[1]+a[2]>a[0]&&a[0]+a[2]>a[1]) 2. int fun() if(large+middle+small==100) 三、填空题 1. #include <math.h> return (x*x-2*x+6); sin(x) 2. p*=i; p=p*1.0/i; 3. find max(a,sizeof(a)/sizeof(int)) max=*array或max=array[0] 四、编程题 1. doulbe y; if(x<=1600) y=0; if(x>1600&&x<=2100) y=(x-1600)*0.05; if(x>2100&&x<=3100) y=(x-1600)*0.1-25; if(x>3100) y=(x-1600)*0.15-125; return y; 2. int i,j,s=0,k=0; for(i=0;i<ROW;i++) for(j=0;j<COL;j++) if(a[i][j]<0) continue; else if(a[i][j]==0)break; else {b[k++]=a[i][j];s=s+a[i][j];} for(i=0;i<k;i++) printf(“%3d”,b[i]); return s;
展开阅读全文

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


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服