1、福建省二级C模拟题 7一、选择题1 以下叙述不正确的是(d)。A)C语言的执行总是从 main函数开始 B)一个C源程序必须包含一个main函数C)C语言程序的基本组成单位是函数 D)在编译C程序源程序时,可发现注释中的拼写错误2以下(b)是错误的整型常量。A)-0xcdf B)018 C)0xe D)0113若有定义:int a,b;double x,则以下不符合C语言语法的表达式是(a)。A)x%(-3) B)a+=-2 C)a=b=2 D)x=a+b4.若有定义:int i,j;则表达式(i=2,j=5,i+,i+j+)的值是(b)。A)7 B)8 C)9 D)105已有如下定义和输入语
2、句 int a;char c1,c2; scanf(“%d%c%c”,&a,&c1;&c2); 若要求a、c1、c2的值分别为10、A和B,正确的数据输入是(a)。A)10AB B)10 A B C)10A B D)10 AB6.若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为“假”。则不能满足要求的表达式是(c)。A)a%2=1 B)!(a%2=0) C)!(a%2) D)a%27.若有定义:int a=2,b=3;float x=3.5,y=2.5;则表达式float(a+b)/2+(int)x%(int)y的值为 ( a ). A)3.5 B)3.0 C)2.5
3、D)2.08.以下程序的运行结果是(c)。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)warn9.以下程序的运行结果是(b)。void main() int sum=0,item=0; while(item5) item+; sum+=item; if(sum=5) break; printf(”
4、%dn”,sum); A)10 B)15 C)5 D)610.下面程序段的运行结果是(d)。 int i=0,a=3,4,5,4,3; do ai+; while(a+i5); for(i=0;i5;i+) printf(”%d”,ai);A)4 5 6 5 4 B)3 4 5 4 3 C)4 5 5 5 4 D)4 5 5 4 311若有定义:int a23;则对数组元素的非法引用是(d)。A)a01/2 B)a11 C)a4-40 D)a0312以下程序段运行后屏幕输出为(b)。 char str=”abcd”; printf(”%d”,strlen(str);A)4 B)5 C)6 D)
5、713.若有如下函数定义:int fun() static int k=0; return +k; 以下程序段运行后屏幕输出为(d)。 int i; for(i=1;i=5;i+) fun(); printf(”%d”,fun(); A)0 B)1 C)5 D)614.下面程序的输出结果是(b) #include#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语句正确给输入项读入数据的程序段是d)。
6、 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.下面程序的输出结果是(d)#includevoid main()int i; char *s=”abc”; for(i=0;i3;i+) printf(”%sn”,s+i); A)abc B)c C)abc D)a bc bc c ab c abc bc abc17.以下程序的运行结果是(b)。 #include union Utype int i; float f; u2; void main()
7、printf(”sizeof(u):%dn”,sizeof(u);A)2 B)4 C)6 D) 818. 若有如下定义,函数fun的功能是(b )。其中head指向链表首结点,整个链表结构如下图:head struct nodeint 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)创建一个链表head1
8、9下面程序的输出结果为(b)。 #include void main()enum Weekdaysun=7,mon=1,tue,wed,thu,fri,sat; enum Weekday day=sat; printf(”%dn”,day);A)7 B)6 C)5 D)420.以下程序的可执行文件名为cmdline.exe。 #include #include void main(int argc,char *argv) if(argc!=2) printf(”You forgot to type your name or you typed more parametersn”); exit(
9、1); printf(”Hello %sn”,argv1); 在DOS命令行输入:cmdline harry,则输出结果是(b)。 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,其功能是从键盘输入三角形的三边长,求其面积,若三个边长不能构成三角形,则提示。 如 输入:69 11 输出: 26.98 #include #include void main() float a3,s,
10、area; int i; printf(”Please input 3 numbers:n”); for(i=0;ia2|a1+a2a0|a0+a2a1) /*/ s=(a0+a1+a2)/2; area=sqrt(s*(s-a0)*(s-a1)*(s-a2)l printf(”area is %.2fn”,area); else printf(”error.n”); getch(); 2程序cmody072.c其功能是求解百马百担问题。有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马数可分别为多少?有多少种解决方案? #include #include /*
11、/ void fun()/*/ int large,middle,small,n=0; clrscr(); for(large=0;large=33;large+) for(middle=0;middlelarge:%d,middle:%d,small%dn”,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(
12、x+8)=86.000 f(sinx)=5.008 #include /*/ /*/ 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为整数且mn0。 #include 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=%fn”,fun(13,7); getch();3.补充程序Ccon073.c,函数findmax返回数组中的最大元素。 #include int findmax(int *array,int size); void main() int a
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1