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

二级C模拟题

来源:世旅网
二级C模拟题(第一套)

一、选择题

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

A)每行只能写一条语句 B)程序中必须包含有输入语句 C)main函数必须位于文件的开头 D) 每条语句最后必须有一个分号 2.在C语言中,正确的用户标识符是( )。

A)3f. B)_for C)struct D)_f.5 3.若有定义:int a=2; 则正确的赋值表达式是( )。

A)a-=(a*3) B)double (-a) C)a*3 D)a*4=3 4. 下面叙述正确的是( )。

A)2/3与2.0/3.0等价 B)(int)2.0/3与2/3等价

C)++5与6等价 D)’A’与”A”等价

5.若已定义:float m;拟从键盘输入135.78这一数据给变量m,则应选用的语句是( )。 A)scanf(”%5.2f”,&m); B)scanf(”%3.2f”,&m);

C)scanf(”%6.2f”,&m); D)scanf(”%6f”,&m);

6. 若已定义:int a=3,b=15,c;则语句c=a>b;运行后c的值为( )。(错为0,对为1) A)1 B)0 C).t. D).f. 7. 已知double a=5.2;则正确的赋值表达式是( ). A)a+=a-=(a=4)*(a=3) B)a=a*3=2

C)a%3 D)a=double (-3) 8. 以下的if语句中,x的值一定被重新赋值的是( )。 A)if(x==y) x+=y;

B)if(x>y && x!=y);

x+=y; C)if(x!=y)

scanf(”%d”,&x); else

scanf(”%d”,&y); D)if(x{x++;y++;}

9.设有整型变量x,下述语句( )不会出现死循环。

A)for(;;x+=1); B)for(;(x=getchar())!=’\\n’;); C)while(1){x++;} D)for(x=10;;x--); 10. C语言中数组元素下标的数据类型是( )。

A)实型常量 B)整型常量或整型表达式 C)任何类型的表达式 D)字符型常量 11.设有如下程序段:

int a[3][3]={1,0,2,1,0,2,1,0,1},i,j,s=0; for(i=0;i<3;i++) for(j=0;j则执行该程序段后,s的值是( )。

A)0 B)1 C)2 D)3 12.设有以下变量定义:

char str1[]=”string”,str2[8],*str3,*str4=”string”; ( )是正确的。

A)strcpy(str1,”China”); B)str2=”China”;

C)strcpy(*str3,”China”); D)strcpy(str4[0],”China”); 13. 设有如下函数定义:

第 1 页 共 6 页

二级C模拟题(第一套)

int fun(char *str) {char *p=str;

while(*p!=’\\0’)p++; return (p-str); }

则以下语句执行后的输出结果是( )。 printf(”%d\\n”,fun(”Student”));

A)7 B)8 C)9 D)10 14. 若有以下宏定义, #define MOD(x,y) x%y

则执行以下程序段后,z的值是( ) int z,a=15,b=100; z=MOD(b,a);

A)100 B)15 C)11 D)10

15.设有以下语句,则( )是对a数组元素的不正确引用,其中0≤i<10。 int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

A)a[p-a] B)*(&a[i]) C)p[i] D)*(*(a+i))

16. 若有以下程序段,且0≤i<4,0≤j<3,则不能正确访问a数组元素的是( int i,j,(*p)[3];

int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p=a;

A)*(*(a+i)+j) B)p[i][j] C)(*(p+i))[j] D)p[i]+j17. 以下程序段的运行结果是( )。 union {int num; char str[2]; }s;

s.num=20;

s.str[0]=’A’; s.str[1]=’\\0’;

printf(”%d”,s.num);

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

struct link *next; }*head,*p;

并已建立如下图所示的链表结构: head data next data next „ data NULL 指针p指向如下结点: p data next 则能够把p所指结点插入到链表中成为链表第2个结点的程序段是( )。 A)p->next=head->next; head->next=p; B)head->next=p; p->next=head->next; C)p.next=head.next; head.next=p;

D)(*head).next=p; (*p).next=(*head).next; 19.对枚举类型进行定义,不正确的是( )。

A)enum b{1,2,3} B)enum a{A,B,C};

第 2 页 共 6 页

。) 二级C模拟题(第一套)

C)enum c{D=3,E,F} D)enum d{X=0,Y=5,Z=9}; 20.以下程序的功能是( )。 #include main()

{FILE *fp; long int n;

fp=fopen (”wj.txt”, ”rb”); n=ftell(fp); fclose(fp);

printf (”%ld”,n); }

A)计算文件wj.txt的起始地址 B)计算文件wj.txt的终止起始地址 C)计算文件wj.txt内容的字节数 D)将文件指针定位到文件末尾 二、改错题

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

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

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

(4)按Alt+Tab键,切换考试程序与Turbo C;按Alt+Enter键,切换Turbo C窗口大小。

1.程序cmody011.c的功能是:从字符串数组str1中取出ASCII码值为偶数且下标为偶数的字符依次存放到字符串t中。

例如,若str1所指的字符串为:4AZ18c?Ge9a0z!则t所指的字符串为:4Z8z 注意:数组下标从0开始。

#include #include #include #include void main()

{ char str1[100],t[200]; int i,j;

/**/ i=0; /**/ clrscr();

strcpy(str1,”4AZ18c?Ge9a0z!”); for(i=0;i/**/if ((str1[i]%2==0) &&(i%2!=0)) /**/ {

t[j]=str1[i]; j++; } }

t[j]=’\\0’;

printf(”\\n Original string:%s\\n”,str1); printf(”\\n Result string:%s\\n”,t); }

2.程序cmody012.c中,函数fun(int n)的功能是:根据参数n,计算机大于10的最小n个能被3整除的正整数的倒数之和。例如:

第 3 页 共 6 页

二级C模拟题(第一套)

fun811110.396 12151833 #include #include #include #include #define M 50

double fun(int n) { double y=0.0; int i,j; j=0;

for(i=1;;i++) {

/**/if((i<10)&&(i%3==0))/**/ {

/**/y+=1/j;/**/ j++; }

if(j==n) break; }

return y; }

void main() {clrscr();

printf(”fun(8)=%8.3lf\\n”,fun(8)); }

三、填空题

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

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

(4)按Alt+Tab键,切换考试程序与Turbo C;按Alt+Enter键,切换Turbo C窗口大小。 1.补充程序Ccon011.c,该程序的功能是计算阶乘。 main()

{/**/ /**/p; int i; p=1;

/**/ /**/(i=1;i<=8;i++) p=p*i;

printf(“\\np=%ld”,p); getch(); } 2.补充程序Ccon012.c,该程序的功能是对输入的两个整数,按实数相除,输出它们的商和商的第二位小数。

第 4 页 共 6 页

二级C模拟题(第一套)

#include void main() {

int a,b,c; float f; clrscr();

printf(“Please input a b:”); scanf (”%d%d”,&a,&b); f=/**/ /**/;

c=/**/ /**/(f*100)%10;

printf(“\\n a/b=%f The second decimal place is:%d\\n”,f,c); getch(); } 3.补充程序Ccon013.c,程序实现从10个数中找出最大值和最小值。 #include #include int max,min;

void find_max_min(int *p,int n) {

int *q; max=min=*p;

for(q=p;q*q)min=*q; }

void main() {

int i,num[10];

printf (”Input 10 numbers:”);

for(i=0;i<10;i++) scanf (”%d”,&num[i]); find_max_min(/**/ /**/,10); printf(”max=%d,min=%d\\n”,max,min); } 四、编程题

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

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

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

1sinxexfun1x

1xfun1(3.76)=9.111

例如:fun1(0.76)=2.175 fun1(3.00)= 5.307 第 5 页 共 6 页

二级C模拟题(第一套)

#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. 打开考生文件夹中的cprog012.c,完成其中的函数fun2(int a[],int n,int b[],int c[]),实现: 1)将数组a中大于-20的元素依次存放到数组b中;

2)将数组b中的元素按照从小到大的顺序存放到数组c中; 3)函数返回数组b中的元素个数。 #include #include #include #include

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

/**/ }

void main()

{ int n=10,i,nb;

int aa[10]={12,-10,-31,-18,-15,50,17,15,-20,20}; int bb[10],cc[10]; clrscr();

printf (”There are %2d elements in aa.\\n”,n); printf (”There are:”);

for(i=0;iprintf (”Elements in bb are:”);

for(i=0;iprintf (”Elements in cc are:”);

for(i=0;iprintf (”There are %2d elements in bb.\\n”,nb); }

第 6 页 共 6 页

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

Copyright © 2019- esig.cn 版权所有 湘ICP备2023023988号-3

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

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