您好,欢迎来到世旅网。
搜索
您的当前位置:首页二级C模拟题2

二级C模拟题2

来源:世旅网
一、选择题

1. 下面关于C语言的叙述中,错误的是( )。

A)若一条语句较长,也可分写在下一行上 B)构成C语言源程序的基本单位是表达式 C)C语言源程序中大、小写字母是有区别的 D) 一个C语言源程序可由一个或多个函数组成 2.C语言的基本数据类型包括( )。

A)整型、实型、字符型 B)整型、实型、字符型、逻辑型 C)整型、字符型、逻辑型 D)整型、实型、逻辑型 3.语句x=(a=3,b=++a);运行后,x,a,b的值依次为( )。

A)3,3,4 B)4,4,3 C)4,4,4 D)3,4,3 4. 下面叙述中,错误的是( )。

A)C语言基本的算术运算符不包含模运算符”%” B)算术运算符的优先级高于关系运算符

C)自加和自减运算符的结合方向是”自右至左”

D)C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行

5.已知double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是( A)scanf(”%ld”,&a); B)scanf(”%d”,&a);

C)scanf(”%7.2f”,&a); D)scanf(”%lf”,&a);

6.下面叙述中( )不是结构化程序设计三种基本结构的共同特点。 A)先判断后执行 B)单入口,单出口

C)程序中没有执行不到的语句 D)无死循环 7. 已知char a=’R’;则正确的赋值表达式是( ).

A)a=(a++)%4 B)a+2=3 C)a+=256-- D)a=’\\078’ 8. 以下程序的运行结果是( )。 void main() {int x,y=1,z; z=-1; if(z==0) z=-z; else

x=y>0?3:5;

printf(”%d\\n”,x); }

A)-1 B)3 C)1 D)5 9.在循环语句的循环中,break语句的作用是( )。 A)暂停程序的运行 B)结束本次循环 C)继续执行break语句之后的循环体各语句 D)提前结束循环,接着执行该循环后续的语句 10.下列数组声明中,正确的是( )。

A)int a[10]; B)int n=10,a[10];

C)int N=10;int a[N]; D)int n;scanf(”%d”,&n);int a[n]; 11.以下程序段运行后s的值是( )。 int a[3][3]={1,2,3,1,2,3,1,2,3};

int i,j,s=1; for(i=0;i<3;i++) for(j=i;j<3;j++) s*=a[i][j];

1

。 ) A)18 B)108 C)2 D)12 12.有如下定义:

char str[3][2]={ ’a’,’b’, ’c’, ’\\0’, ’e’, ’f’}; 则语句:

printf(”%s”,str[0]); 的输出结果是( )。

A)ab B)abcef C)abc\\0 D)abc 13. 以下程序的运行结果是( )。 int fun(int array[4][4]) {int j;

for(j=0;j<4;j++)printf(”%2d”,array[2][j]); printf(”\\n”); } main()

{ int a[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0}; fun(a); }

A)2 0 0 5 B)1 0 0 4 C)0 1 2 0 D)0 4 5 0 14.以下叙述中,正确的是( ) A)“#define PRICE=30”定义了与30等价的符号常量PRICE B)预编译处理命令行都必须以“#”开头

C)程序中使用带参的宏时,参数类型要与宏定义时一致 D)宏名只能包含大写字母和数字字符

15.若有定义int *p1,*p2;,则指针变量p1,p2不能进行的运算是( )。 A)< B)= C)+ D)- 16.以下程序段的运行结果是( )。 int x[]={2,3,4,5,6,7},*p=x; int i,s=0;

for(i=1;i<6;i++) s+=p[i++];

printf(”%d”,s);

A)12 B)15 C)25 D)27 17. 设有以下定义语句 struct student {int num;

char name[10]; float score; }wang,zhang;

则变量wang所占的内存字节数是( )。

A)14 B)16 C)18 D)20 18. 若有以下定义: struct link {int data;

struct link *next; }a,b,c,*head,*p;

其中,指针head指向变量a,p指向变量c,a.next指向变量b,链表结构如下图所示: head Null p data next data data next 则能够把c插入到a和b之间并形成新链表的程序段是( )。 A)a.next=c; b.head=b;

2

B)head.next=p; p.next=head.next; C)head->next=&c;p->next=head->next; D)(*head).next=p; (*p).next=&b; 19.假定已有如下变量说明和枚举定义: char ch; int j,k;

enum day{sun,mon,tue,wed,thu,fri,sat}; 判断下列语句是否符合语法规则,结果是( ) sun=0; /* 语句1 */ j=mon+tue; /* 语句2 */ if(a[mon]>0) j++; /* 语句3 */

A)语句1错误,语句2和语句3正确 B)语句2正确,语句1和语句3错误 C)语句3正确,语句1和语句23错误 D)语句1正确,语句2和语句3错误 20.设有一文本文件test.txt,其内容为”cprogram”(不包含引号),以下程序段的运行结果是(FILE *fp; Char *str;

if((fp=fopen(”test.txt”, ”r”))!=NULL) str=fgets(str,5,fp); printf (”%s”,str); }

A)cpro B)cprog C)progr D)cprogram 二、改错题

改错题:共2小题,每题10分,说明如下:

(1)修改程序在每对“/**/”之间存在的错误;

(2)不得删改程序中所有的“/**/”注释和其它代码; (3)源程序均在考生文件夹中,务必以原文件名保存程序;

(4)按Alt+Tab键,切换考试程序与Turbo C;按Alt+Enter键,切换Turbo C窗口大小。 1.程序cmody021.c,输出如下所示图形: * * * * * * * * * * * * * * * * * * * * *

#include void main()

{ /**/int i,j; /**/ for(i=1;i<=6;i++)

{for(k=1;k<10+i;k++) printf(””); for(j=1;j<=7-i;j++)

printf (”*”)/**/ : /**/ printf(”\\n”); } getch(); }

3

。 )

2.程序cmody022.c的功能是求解百元买百鸡问题:

设一只公鸡2元、一只母鸡元、一只小鸡0.5元。问一百元买一百只鸡,公鸡、母鸡、小鸡数分别为多少?有多少种分配方案? #include #include /**/int fun(); /**/

{ int hen,cock,chicken,n=0; clrstr();

for(cock=0;cock<=50;cock+=1) for(hen=0;hen<=100;hen=hen+1) {chicken=2*(100-hen-2*cock); /**/ if(cock+hen+chicken=100) /**/ {n++;

printf(”%d-->hen:%d,cock:%d,chicken:%d\\n”,n,hen,cock,chicken); if(n==20)getch(); } } return n; }

void main() {int num;

num=fun();

printf(”\\n There are %d solutions. \\n”,num); getch(); }

三、填空题

填空题:共3小题,每题6分,说明如下:

(1)编写程序,补充在每对“/**/”之间的空白处,以完成题目的要求; (2)不得删改程序中所有的“/**/”注释和其它代码; (3)源程序均在考生文件中;务必以原文件名保存程序;

(4)按Alt+Tab键,切换考试程序与Turbo C;按Alt+Enter键,切换Turbo C窗口大小。 1.补充程序Ccon021.c,使其计算满足下式的一位整数A和B的值。

AB

BA

403

#include void main() {int a,b,k;

int plu= /**/ /**/; for(a=1;a<10;a++) for(b=1;b<10;b++) {

k=(a*10+b)* /**/ /**/ ;

if (k==plu) printf(”A=%d,B=%d\\n”,a,b);

4

} } 2.补充程序Ccon022.c,使其实现输入若干整数,统计其中大于零和小于零的个数。以零结束输入。 #include void main() {

int n,a,b;

/**/ /**/ scanf (”%d”,&n);

while(/**/ /**/) { if(n>0 a++;

else /**/ /**/ scanf(”%d”,&n); }

printf(”Positive integer :%d, negative integer :%d\\n”,a,b); } 3.补充程序Ccon023.c,该程序可测试歌德巴赫猜想:从键盘上输入一个大于6的偶数,总能找到两个素数,使得这两素数之和正好等于该偶数。 #include #include int prime(int n) {int k,flag=1;

for(k=2;k<=n/2+1;k++)

if(n%k==0) {flag=/**/ /**/;break;)}

return flag; }

void main() { int num,a; clrscr(); do

{ printf (”Please input an even number:”); scanf (”%d”,&num); }while(num<=6||num%2==1); for(a=2;a<=num/2+1;a++)

if(prime(a) && prime(/**/ /**/)) printf(”\\n%d=%d+%d”,num,a,num-a); } 四、编程题

编程题:共2小题,每题11分,说明如下:

(1)在一对“/**/”之间编写程序,以完成题目的要求; (2)不得删改程序中所有的“/**/”注释和其它代码; (3)源程序均在考生文件中;务必以原文件名保存程序;

(4)按Alt+Tab键,切换考试程序与Turbo C;按Alt+Enter键,切换Turbo C窗口大小。 1.打开考生文件夹中的cprog021.c,完成其中的函数fun1,该函数的数学表达式是:

5

fun1xexx6x1.3

例如:fun1(0.76)=3.582 fun1(3.00)=5.369 fun1(3.76)=8.931 #include #include double fun1(double x) {/**/

/**/

}

void main() {

clrscr();

printf (”fun1(0.76)=%8.3lf\\n”,fun1(0.76)); printf (”fun1(3.00)=%8.3lf\\n”,fun1(3.00)); printf (”fun1(3.76)=%8.3lf\\n”,fun1(3.76)); } 2. 打开考生文件夹中的cprog022.c,完成其中的函数fun2(int a[],int n,int b[],int c[]),实现:将三个字符串a、b、c从小到大排序后输出。

注意:字符串比较函数为strcmp(str1,str2),字符串赋值函数为strcpy(str1,str2)。 #include #include #include #include

int fun2(char a[],char [],char c[]) { /**/

/**/ }

void main()

{ char str1[15]=”Fuzhou”,str2[15]=”Fujian”,str3[15]=”China”; clrscr();

fun2(str1,str2,str3);

printf (”The ordered strings is :%s,%s,%s\\n”,str1,str2,str3); getch(); }

6

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- esig.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务