当前位置:文档之家› 计算机语言C模拟考试及答案

计算机语言C模拟考试及答案

计算机语言C模拟考试总分:150分考试时间:120分钟注意事项:➢题目包括五大部分, 单项选择题,判断题,填空题,程序分析题,编程题,请按要求在规定时间内作答。

➢考试中途不能无端离场,否则视为放弃。

考试过程中如遇问题请及时向监考老师反馈。

一、单项选择题(每小题2 分,共 40分)1、有以下程序main(){char a1='m', a2='m';printf("%c\n", (a1, a2) );}以下叙述中正确的是________。

A、程序输出大写字母MB、程序输出小写字母mC、格式说明符不足,编译出错D、程序运行时产生出错信息2、下列数据中,不合法的c语言实型数据的是________。

A、0.123B、123e3C、2.1e3.5D、789.03、表达式10!=12的值是________。

A、0B、1C、trueD、非零值4、下述语句中,_____中的if语句语法是错误的。

( )A、if(x>y);B、if(x==y)x+=y;C、if(x!=y)seanf("%d",&x)else scanf("%d",&y);D、if(x<y)x++;y++;5、以下for语句构成的循环执行了______次。

#include <stdio.h>#define N 2#define M N+1#define NUM (M+1)*M/2main(){int i,n=0;for(i=1;i<=NUM;i++){N++;printf("%d",n);}printf("\n");}A、5B、6C、8D、96、下列数组说明中,正确的是________。

A、int array[][4];B、int array[][];C、int array[][][5];D、int array[3][];7、下列选项中不会引起二义性的宏定义是________。

A、#define S(x)X*xB、#define S(x) (x)*(x)C、#define S(x) (x*x)D、#define S(x) ((x)*(x))8、若数组a定义为int[][]a=new int[3][4],则a是________。

A、一维数组B、二维数组C、三维数组D、四维数组9、如果用printf()来输出双精度型数据、则正确的格式控制符是________。

A、%-10.2fB、%lfC、%eD、%g10、在c语言中,不允许有常量的数据类型是________。

A、整型B、结构型C、字符型D、字符串11、下面程序的运行结果是#include<stdio.h>main(){char a[]="morning",t;int i,j=0;for(i=1;i<7;i++) {if(a[j]<a[i]) {j=i;t=a[j];a[j]=a[7];a[7]=a[j];}}printf("%s", a);}A、mrgninrB、mC、moringD、morning12、以下叙述中正确的是________。

A、两个字符串可以用关系运算符进行大小比较B、函数调用 strlen(s)会返回字符串 s 实际占用内存的大小(以字节为单位)C、C 语言本身没有提供对字符串进行整体操作的运算符D、当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和13、若希望当a的值为奇数时,表达式的值为"真",a的值为偶数时,表达式的值为"假",则下面不能满足要求的表达式是________。

A、A%2==1B、!(A%2==0)C、!(A%2)D、A%214、算法指的是________。

A、解决问题的方法、步骤和思路的一种描述B、计算机程序C、排序方法D、数据处理15、下面程序段的输出结果是________。

#include<stdio.h>main(){float x=1.236547;printf("%f\n",(int)(x*1000+0.5)/(float)1000);}A、1.237000B、输出格式说明与输出项不匹配,输出无定值C、1.236000D、1.2416、有以下程序main(){int i, j;for(i=1;i<4;i++){for(j=i;j<4;j++) printf("%d*%d=%d ",i,j,i*j); printf("\n");}}程序运行后的输出结果是______。

A、1*1=1 1*2=2 1*3=32*1=2 2*2=4 2*3=63*1=3 3*2=6 3*3=9B、1*1=1 1*2=2 1*3=32*2=4 2*3=63*3=9C、1*1=1D、1*1=1 1*2=22*1=2 2*2=43*3=917、变量a所占的内存字节数是______。

union u{char st[4];int i;long l;};struct A {int c;union u;} a;A、4B、5C、6D、818、有以下程序main(){int a[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf("%d",*ptr);}for(i=0;i<3;i++){for(j=0;j<2;j++) printf("%2d",a[i][j]); printf("\n");}}若运行时输入:1 2 3<回车>,则输出结果是______。

A、产生错误信息B、1 02 00 0C、1 23 00 0D、1 02 03 019、若有以下定义,则对a数组元素的正确引用是________。

int a[5],*p=a;A、*&a[5]B、*a+1C、*(p+5)D、*(a+2)20、有以下结构体说明和变量的定义,且指针p指向变量a’指针q指向变量b,则不能把结点b连接到结点a之后的语句是________。

struct node{char data;struct node*next;}a,b,*p=&a,*q=&b;A、a.next=q;B、P.next=&b:C、p—>next=&b;D、(*p).next=q;二、判断题(每小题2 分,共 20分)()1、在c程序运行过程中,其值不能被改变的量称为常量,其值可以改变的量称为变量。

()2、c 语言规定 : 定义符号常量时必须用大写字母。

()3、对全局指针变量与局部静态指针变量而言,在定义时若未被初始化,则编译系统自动初始化为空指针0()4、for循环的三个表达式可以任意省略,while,do-while也是如此。

()5、函数strcpy(str1,str2);的功能是将字符串str2复制到字符串str1中。

()6、c程序函数体是由左右花括号{}括起来的部分。

()7、数组名能与其它变量名相同。

数组名后是用方括号括起来的常量表达式,不能用圆括号。

()8、c语言规定,在一个源程序中,main函数的位置必须在最后。( )()9、若函数体内没有return语句,程序的流程就执行到函数体的末尾,然后返回到调用函数。

这时带回一个不确定的函数值。

()10、如果在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量依然起作用。

三、填空题(每小题4 分,共 20分)1、字符串函数___________用于把一个字符串写入指定的磁盘文件中。

2、若变量x,y已定义为int类型且x的值为99,y的值为9,请将输出语句printf( ________ ,x/y);补充完整,使其输出的计算结果形式为:x/y=11。

3、在c语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是________。

我的答案: break4、源程序的基本单位是【】。

5、若有定义:double x[3][5];则x 数组中行下标的下限为【1】,列下标的上限为【2】。

四、程序分析题(每小题5 分,共 20分)1、#include <stdio.h>void main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for (i=1;i<3;i++) for (j=0;j<i;j++) s+=a[i][j];printf("%d\n",s);}2、以下程序的输出结果是_____________。

main(){float x;printf("%.4f\n",(x=2*4,x+0.5));}3、程序结果:void main(){int a,b,sum;a=123;b=456;sum=a+b;printf("sum is %d\n",sum);}4、已知字符a的acsii码值为65,以下语句的输出结果是 ________char ch=’b’;printf("%c %d\n",ch,ch);五、编程题(每小题分,共 50分)1、已知银行定期存款利率为r=2.25%,输入存款本金x、存款年数n,输出本利之和y=x(1+r)(1+r)...(1+r),共n个(1+r)。

(本题12分)2、判断101-200之间有多少个素数,并输出所有素数。

(本题18分)3、定义一个结构体变量(包括年、月、日)。

编写一个函数days,计算该日期在本年中是第几天(注意闰年问题)。

由主函数将年月日传递给days函数,计算之后,将结果传回到主函数输出。

(本题20分)【计算机语言C模拟考试参考答案】一、单项选择题1、A2、C【解析】在C语言中,实数有两种表示形式。

即十进制数形式和指数形式,在指数形式中,字母e的前面必须有数字,且e的后面必须是整数。

e3,2.1e3.5,e3,e等都是不合法的指数形式,而123e3或123E3都代表123乘以10的3次方。

3、B4、C5、C6、A7、D8、B【解析】二维数组有两种定义方式:①type arrayName[][];②type[][]arrayName;从题目中的语句可以看出,本题定义了一个二维数组。

9、B10、B11、B【解析】本题考查了一维数组元素的引用方法。

题中数组a为一字符串数组,通过数组首地址和下标可以引用数组中的每个元素。

因为字符数组相当于字符串12、C【解析】本题考查字符串处理函数 strlen、 strcat strcmp.b 选项中strlen 返回的是字符串 s 实际占用内存大小加上结尾符 A 选项中不能用关系运算符进行大小比较,可以使用 strcmp D 选项当使用 strcat 连接函数时,内存空间会减少一个字符位置。

相关主题