搜档网
当前位置:搜档网 › C语言模拟试题

C语言模拟试题

试卷编号:8156
所属语言:C语言
试卷方案:C语言201006模拟
试卷总分:100分
共有题型:5种

━━━━━━━━━━━━━━━
一、判断 共10题 (共计20分)
━━━━━━━━━━━━━━━

第1题 (2.0分) 题号:1225
在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量.
答案:Y

第2题 (2.0分) 题号:1279
循环结构while、do while、for不可以互相嵌套.
答案:N

第3题 (2.0分) 题号:1140
链表中的任何一个结点,必然要包括一个指针域.
答案:Y

第4题 (2.0分) 题号:1265
在书写C程序时,一行内只能写一条语句,一条语句也不能写在多行上.
答案:N

第5题 (2.0分) 题号:1280
C语言程序中用到的所有变量必须在使用之前进行定义.
答案:Y

第6题 (2.0分) 题号:1269
若定义int a[4]={1,2,3,4};若超界引用a[4]则编译时不报错.
答案:Y

第7题 (2.0分) 题号:19
C语言本身不提供输入输出语句,输入和输出操作是由函数来
实现的。
答案:Y

第8题 (2.0分) 题号:11
通过return语句,函数可以带回一个或一个以上的返回值。
答案:N

第9题 (2.0分) 题号:24
对于数值型数组,C语言中只能逐个引用数组元素而不能一次引用整个数组。
答案:Y

第10题 (2.0分) 题号:33
int i,*p=&i;是正确的C说明。
答案:Y

━━━━━━━━━━━━━━━━━
二、单项选择 共15题 (共计30分)
━━━━━━━━━━━━━━━━━

第1题 (2.0分) 题号:87
C语言源程序的基本单位是()。
A:过程
B:函数
C:子程序
D:标识符

答案:B

第2题 (2.0分) 题号:110
C语言中,char类型数据占()。
A:1个字节
B:2个字节
C:4个字节
D:8个字节

答案:A

第3题 (2.0分) 题号:112
下列程序的输出结果是()。
main()
{char c1=97,c2=98;
printf("%d %c",c1,c2);
}
A:97 98
B:97 b
C:a 98
D:a b

答案:B

第4题 (2.0分) 题号:170
关于return语句,下列正确的说法是()。
A:在主函数和其他函数中均可出现
B:必须在每个函数中出现
C:可以在同一个函数中出现多次
D:只能在除主函数之外的函数中出现一次

答案:C

第5题 (2.0分) 题号:137
下列表达式中不是赋值表达式的是( ).
A:a*=b
B:x=1
C:a+b
D:a++

答案:C

第6题 (2.0分) 题号:94
在C语言中,能代表逻辑值“真”的是()。
A:True
B:大于0的数
C:非0整数
D:非0的数

答案:D

第7题 (2.0分) 题号:570
以下叙述不正确的是()。
A:一个C源程序可由一个或多个函数组成
B:一个C源程序必须包含一个main函数
C:C程序的基本组成单位是函数
D:在C程序中,注释说明只能位于一条语句的后面


案:D

第8题 (2.0分) 题号:129
以下各标识符中,合法的用户标识符为( ).
A:A#C
B:mystery
C:main
D:ab*

答案:B

第9题 (2.0分) 题号:166
下列定义数组的语句中不正确的是()。
A:int a[2][3]={1,2,3,4,5,6};
B:int a[2][3]={{1},{4,5}};
C:int a[][3]={{1},{4}};
D:int a[][]={{1,2,3},{4,5,6}};

答案:D

第10题 (2.0分) 题号:97
以下不正确的叙述是()。
A:在C程序中所用的变量必须先定义后使用
B:程序中,APH和aph是两个不同的变量
C:若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变
D:当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值

答案:D

第11题 (2.0分) 题号:139
定义双精度实型变量应使用( ).
A:long int
B:float
C:char
D:double

答案:D

第12题 (2.0分) 题号:627
判断char型变量cl是否为小写字母的正确表达式是()。
A:'a'<=cl<='z'
B:(cl>=a)&&(cl<=z)
C:('a'>=cl)||('z'<=cl)
D:(cl>='a')&&(cl<='z')

答案:D

第13题 (2.0分) 题号:3112
下列语句定义pf为指向float类型变量f的指针,_____是正确的.
A:float f, *pf = f;
B:float f, *pf = &f;
C:float *pf = &f, f;
D:float f, pf

答案:B

第14题 (2.0分) 题号:3114
C语言源程序名的后缀是
A:exe
B:c
C:obj
D:cp

答案:B

第15题 (2.0分) 题号:711
下列选项中正确的语句组是()。
A:char s[8]; s={"Beijing"};
B:char *s; s={"Beijing"};
C:char s[8]; s="Beijing";
D:char *s; s="Beijing";

答案:D

━━━━━━━━━━━━━━━━
三、程序填空 共1题 (共计15分)
━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:403
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

功能:输出9*9口诀。

-------------------------------------------------------*/
#include
void main()
{
int i,j,result;
printf("\n");
/***********SPACE***********/
for (i=1;【?】;i++)
{
/***********SPACE***********/
for(j=1;j<10;【?】)
{
result=i*j;
/***********SPACE***********/
printf("%d*%d=%-3d",i,j,【?】);
}
printf("\n");
}
}
答案:

=======(答案1)=======
i<10
=========或=========
10>i

=======(答案2)=======
j++
=========或=========
++j
=========或=========
j=j+1

=======(答案3)=======
result


━━━━━━━━━━━━━━━━
四、程序改错 共1题 (共计15分)
━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:14
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------

功能:输出Fabonacci数列的前20项,要求变量类型

定义成浮点型,
输出时只输出整数部分,输出前20项。

------------------------------------------------------*/
#include
void fun()
{
int i;
float f1=1,f2=1,f3;
/**********FOUND**********/
printf("%8d",f1);
/**********FOUND**********/
for(i=1;i<=20;i++)
{
f3=f1+f2;
/**********FOUND**********/
f2=f1;
/**********FOUND**********/
f3=f2;
printf("%8.0f",f1);
}
printf("\n");
}

void main()
{ void fun();
fun();
}
答案:

=======(答案1)=======
printf("%8.0f",f1);
=========或=========
printf("%f",f1);
=========或=========
printf("%8f",f1);

=======(答案2)=======
for(i=1;i<20;i++)
=========或=========
for(i=1;20>i;i++)
=========或=========
for(i=2;i<=20;i++)
=========或=========
for(i=2;20>=i;i++)
=========或=========
for(i=1;i<=19;i++)
=========或=========
for(i=1;19>=i;i++)

=======(答案3)=======
f1=f2;

=======(答案4)=======
f2=f3;


━━━━━━━━━━━━━━━━
五、程序设计 共1题 (共计20分)
━━━━━━━━━━━━━━━━

第1题 (20.0分) 题号:319
/*------------------------------------------------
【程序设计】
--------------------------------------------------

功能:编写函数判断m是否为素数。在main函数中输出了100到200之间所有的素数。

------------------------------------------------*/

#include "stdio.h"
void wwjt();

int fun(int m)
{

/**********Program**********/



/********** End **********/

}

void main()
{ int fun(int m);
int m,k=0;
for(m=100;m<200;m++)
if(fun(m))
{
printf("%4d",m);
k++;
if(k%5==0)
printf("\n");
}
printf("k=%d\n",k);
wwjt();
}


void wwjt()
{
FILE *IN,*OUT;
int iIN,iOUT,i;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..It May Be Changed");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. It May Be Changed");
}
for(i=0;i<10;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int i,k=1;
if(m<=1) k=0;
for(i=2;iif(m%i==0) k=0;
return k;
----------------------












试卷编号:8157
所属语言:C语言
试卷方案:C语言201006模拟
试卷总分:100分
共有题型:5种

━━━━━━━━━━━━━━━
一、判断 共10题 (共计20分)
━━━━━━━━━━━━━━━

第1题 (2.0分) 题号:1147
一个字符型数据可以用整型数据格式输出,一个整数(只限于与字符相对应的整数)也可以用字符形式输出.
答案:Y

第2题 (2.0分) 题号:1284
在C语言中,void型函数将返回一个void型的数值

.
答案:N

第3题 (2.0分) 题号:1106
C语言的函数可以嵌套定义.
答案:N

第4题 (2.0分) 题号:15
整数 -32100可以赋值给int型和long int型变量。
答案:Y

第5题 (2.0分) 题号:1229
函数嵌套就是在定义函数的函数体中调用被定义的函数本身.
答案:N

第6题 (2.0分) 题号:1238
在C语言中,FLOAT可以被定义为变量名.
答案:Y

第7题 (2.0分) 题号:1245
函数的递归就是反复地进行函数调用.
答案:N

第8题 (2.0分) 题号:1224
在C语言程序中, 同一个问题可以有多种实现算法.
答案:Y

第9题 (2.0分) 题号:1282
字符型数据与整型数据之间可以互相赋值和运算.
答案:Y

第10题 (2.0分) 题号:1110
c程序总是从程序的第一条语句开始执行.
答案:N

━━━━━━━━━━━━━━━━━
二、单项选择 共15题 (共计30分)
━━━━━━━━━━━━━━━━━

第1题 (2.0分) 题号:87
C语言源程序的基本单位是()。
A:过程
B:函数
C:子程序
D:标识符

答案:B

第2题 (2.0分) 题号:139
定义双精度实型变量应使用( ).
A:long int
B:float
C:char
D:double

答案:D

第3题 (2.0分) 题号:633
对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。

A:将5个初值依次赋给a[1]至a[5]
B:将5个初值依次赋给a[0]至a[4]
C:将5个初值依次赋给a[6]至a[10]
D:因为数组长度与初值的个数不相同,所以此语句不正确

答案:B

第4题 (2.0分) 题号:655
假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,
则数组x在内存中所占字节数是()。
A:3
B:6
C:10
D:20

答案:D

第5题 (2.0分) 题号:117
在程序设计中,下面关于算法的最恰当描述是( ).
A:算法是求解问题的数学计算公式
B:流程图是描述算法的唯一方法
C:在某一算法中,至少应该有一个输入(或多个输入).
D:同一个问题可能有多种实现算法

答案:D

第6题 (2.0分) 题号:114
下列数据中,为字符串常量的是()。
A:A
B:"house"
C:How do you do.
D:$abc

答案:B

第7题 (2.0分) 题号:673
C语言规定,函数返回值的类型是由()。
A:return语句中的表达式类型所决定
B:调用该函数时的主调函数类型所决定
C:调用该函数时系统临时决定
D:在定义该函数时所指定的函数类型所决定

答案:D

第8题 (2.0分) 题号:138
下列( )不是C语言数据类型中的基本类型.
A:整型
B:数组类型
C:单精度型
D:字符类型

答案:B

第9题 (2.0分) 题号:89
以下标识符中,不能作为合法的C用户定义标识符的是()。
A:a3_b3
B:void
C:_123
D:IF

答案:B

第10题 (2.0分) 题号:586
以下选项中合法的实型常

数是()。
A:5E2.0
B:E-3
C:.2E0
D:1.3E

答案:C

第11题 (2.0分) 题号:3130
下列说法中错误的是
A:一个数组只允许存储同种类型的变量
B:如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值
C:数组的名称其实是数组在内存中的首地址
D:当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改

答案:B

第12题 (2.0分) 题号:604
下面不正确的字符串常量是()。
A:'abc'
B:"12'12"
C:"0"
D:" "

答案:A

第13题 (2.0分) 题号:171
在C语言的函数中,下列正确的说法是()。
A:必须有形参
B:形参必须是变量名
C:可以有也可以没有形参
D:数组名不能作形参

答案:C

第14题 (2.0分) 题号:3160
为表示关系x≥y≥z,应使用C语言表达式
A:(x>=y)&&(y>=z)
B:(x>=y) AND (y>=z)
C:(x>=y>=z)
D:(x>=z)&(y>=z)


答案:A

第15题 (2.0分) 题号:155
C语言中用于结构化程序设计的三种基本结构是( ).
A:顺序结构、选择结构、循环结构
B:if、switch、break
C:for、while、do-while
D:if、for、continue

答案:A

━━━━━━━━━━━━━━━━
三、程序填空 共1题 (共计15分)
━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:15
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

功能:分别求出一批非零整数中的偶数、奇数的平均值,用零作
为终止标记。

-------------------------------------------------------*/
#include
void main()
{
int x,i=0,j=0;
float s1=0,s2=0,av1,av2;
scanf("%d",&x);
/***********SPACE***********/
while(【?】)
{
if(x%2==0)
{
s1=s1+x;
i++;
}
/***********SPACE***********/
【?】
{
s2=s2+x;
j++;
}
/***********SPACE***********/
【?】;
}
if(i!=0)
av1=s1/i;
else
av1=0;
if(j!=0)
/***********SPACE***********/
【?】 ;
else
av2=0;
printf("oushujunzhi:%7.2f,jishujunzhi:%7.2f\n",av1,av2);
}
答案:

=======(答案1)=======
x != 0
=========或=========
x

=======(答案2)=======
else
=========或=========
else if(x%2==1)
=========或=========
else if(x%2!=0)
=========或=========
if(x%2)

=======(答案3)=======
scanf("%d",&x)

=======(答案4)=======
av2=s2/j


━━━━━━━━━━━━━━━━
四、程序改错 共1题 (共计15分)
━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:399
/*------------------------------------------------------
【程序改错】
------------------------------------------------------

--

功能:编写函数fun求20以内所有5的倍数之积。

------------------------------------------------------*/
#include
#define N 20

int fun(int m)
{
/**********FOUND**********/
int s=0,i;
for(i=1;i/**********FOUND**********/
if(i%m=0)
/**********FOUND**********/
s=*i;
return s;
}

void main()
{ int fun(int m);
int sum;
sum=fun(5);
printf("%d以内所有%d的倍数之积为: %d\n",N,5,sum);
}
答案:

=======(答案1)=======
int s=1 , i ;

=======(答案2)=======
if(i%m==0)

=======(答案3)=======
s=s*i;
=========或=========
s=i*s;
=========或=========
s*=i;


━━━━━━━━━━━━━━━━
五、程序设计 共1题 (共计20分)
━━━━━━━━━━━━━━━━

第1题 (20.0分) 题号:16
/*------------------------------------------------
【程序设计】
--------------------------------------------------

功能:编写函数fun求1!+2!+3!+ …… +n!的和,在main函
数中由键盘输入n值,并输出运算结果。请编写fun
函数。
例如:若n值为5,则结果为153。

------------------------------------------------*/

#include
void wwjt();

long int fun(int n)
{

/**********Program**********/





/********** End **********/

}

void main()
{ long int fun(int n);
int n;
long int result;
scanf("%d",&n);
result=fun(n);
printf("%ld\n",result);
wwjt();
}

void wwjt()
{
FILE *IN,*OUT;
int i;
int iIN;
long int iOUT;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..It May Be Changed");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. It May Be Changed");
}
for(i=0;i<10;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%ld\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int i;
float f=1,s=0;
for(i=1;i<=n;i++)
{f=f*i;
s=s+f;}
return s;
----------------------








试卷编号:8158
所属语言:C语言
试卷方案:C语言201006模拟
试卷总分:100分
共有题型:5种

━━━━━━━━━━━━━━━
一、判断 共10题 (共计20分)
━━━━━━━━━━━━━━━

第1题 (2.0分) 题号:27
char c[]="Very Good"; 是一个合法的为字符串数组赋值的语句。
答案:Y

第2题 (2.0分) 题号:1240
链表中有的结点可以没有指针域.
答案:N

第3题 (2.0分) 题号:1145
链表是结构体最重要的应用,它是一种非固定长度的数据结构,是一种动态存储技术.
答案:Y

第4题 (2.0分) 题号:1138
语句char a[4]="this";与char a[]="this";等价.
答案:N

第5题 (2.0分) 题号:1102
在C程序中 , 函数既可以嵌套定义 ,

也可以嵌套调用
答案:N

第6题 (2.0分) 题号:1235
可以使用变量定义数组的长度.
答案:N

第7题 (2.0分) 题号:1228
continue和break语句都能用于switch语句中.
答案:N

第8题 (2.0分) 题号:1281
在循环控制中,可以用continue语句跳出本次循环.
答案:Y

第9题 (2.0分) 题号:1143
在给变量命名时,C语言不区分大小写字母,即认为SUM和sum是同一个变量.
答案:N

第10题 (2.0分) 题号:1268
逻辑运算的三种运算符&&,||,!优先级相同
答案:N

━━━━━━━━━━━━━━━━━
二、单项选择 共15题 (共计30分)
━━━━━━━━━━━━━━━━━

第1题 (2.0分) 题号:200
下面关于指针的叙述,正确的是( ).
A:指针和地址是两个性质不同的概念
B:指针是对结构体变量来定义的
C:指针可以指向任何数据类型的变量
D:指针变量可以初始化

答案:D

第2题 (2.0分) 题号:159
执行下面程序段从键盘给变量a,b,c输入值,正确的输入格式为( ).
int a,c; char b;
scanf("%3d %c%2d",&a,&b,&c);
A:123,d,45
B:123 d 45
C:123d45
D:a=123b=dc=45

答案:C

第3题 (2.0分) 题号:131
若k为int型变量,则以下程序段的执行结果是()。
k=-8567; printf("|%06D|\n",k);
A:格式描述符不合法,输出无定值
B:输出为|%06D|
C:输出为|0-8567|
D:输出为|-8567|

答案:B

第4题 (2.0分) 题号:174
C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为()。
A:void
B:double
C:int
D:char

答案:C

第5题 (2.0分) 题号:630
逻辑运算符两侧运算对象的数据类型()。
A:只能是0或1
B:只能是0或非0正数
C:只能是整型或字符型数据
D:可以是任何类型的数据

答案:D

第6题 (2.0分) 题号:153
能正确表示数学不等式0≤a≤18的C语言表达式是( ).
A:a>=0&a<=18
B:a>=0||a<=18
C:a>=0&&a<=18
D:0≤a&&a≤18

答案:C

第7题 (2.0分) 题号:165
关于多路分支语句switch,下面说法不正确的是( ).
A:switch语句不能嵌套
B:switch语句中可以出现多个空的case子句
C:凡是能用switch语句实现的分支控制都可以用if语句实现
D:一般情况下,当有多路分支时使用switch语句比使用if语句方便

答案:A

第8题 (2.0分) 题号:114
下列数据中,为字符串常量的是()。
A:A
B:"house"
C:How do you do.
D:$abc

答案:B

第9题 (2.0分) 题号:516
char str[10]="China";数组元素个数为()。
A:5
B:6
C:9
D:10

答案:D

第10题 (2.0分) 题号:173
C语言执行程序的开始执行点是()。
A:程序中第一条可以执行语言
B:程序中第一个函数
C:程序中的main函数
D:包含文件中的第一个函数

答案:C

第11题 (2.0分) 题号:3563

以下函数的类型是______。
fff(float x)
{
return 5;
}

A:与参数x的类型相同
B:void 类型
C:int类型
D:无法确定

答案:C

第12题 (2.0分) 题号:100
以下标识符中,不能作为合法的C用户定义标识符的是()。
A:putchar
B:_double
C:_123
D:INT

答案:A

第13题 (2.0分) 题号:577
在C语言中,int、char和short三种类型数据在内存中所占用的字节数()。
A:由用用户自己定义
B:均为2个字节
C:是任意的
D:由所用机器的机器字长决定

答案:D

第14题 (2.0分) 题号:130
在一个完整的C语言程序中,不能缺少的函数是( ).
A:scanf()
B:getchar()
C:fopen()
D:main()

答案:D

第15题 (2.0分) 题号:170
关于return语句,下列正确的说法是()。
A:在主函数和其他函数中均可出现
B:必须在每个函数中出现
C:可以在同一个函数中出现多次
D:只能在除主函数之外的函数中出现一次

答案:C

━━━━━━━━━━━━━━━━
三、程序填空 共1题 (共计15分)
━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:8
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出
其和。

-------------------------------------------------------*/

#include
#include
void main()
{
int i,n,sum;
sum=0;
/***********SPACE***********/
【?】;
/***********SPACE***********/
for(i=1; 【?】 ;i++)
/***********SPACE***********/
if(【?】)
if(i%2==0)
{
sum=sum+i;
n++;
printf("%6d",i);
/***********SPACE***********/
if(【?】)
printf("\n");
}
printf("\ntotal=%d",sum);
}
答案:

=======(答案1)=======
n=0

=======(答案2)=======
i<=300
=========或=========
i<300
=========或=========
300>=i
=========或=========
300>i

=======(答案3)=======
i%7 == 0 || i%17 == 0
=========或=========
!(i%7)||!(i%17)
=========或=========
!(i%17)||!(i%7)
=========或=========
!(i%7&&i%17)

=======(答案4)=======
n%5 == 0
=========或=========
!(n%5)
=========或=========
n/5*5==n


━━━━━━━━━━━━━━━━
四、程序改错 共1题 (共计15分)
━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:415
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------

功能:利用递归方法求5!。

------------------------------------------------------*/

#include
void main()
{
int fact(int);
printf("5!=%d\n",fact(5));
}

int fact(int j)
{
int sum;
/**********FOUND**********/
if(j

=0)
/**********FOUND**********/
sum=0;
else
sum=j*fact(j-1);
/**********FOUND**********/
return j;
}
答案:

=======(答案1)=======
if(j==0)

=======(答案2)=======
sum=1;

=======(答案3)=======
return sum;


━━━━━━━━━━━━━━━━
五、程序设计 共1题 (共计20分)
━━━━━━━━━━━━━━━━

第1题 (20.0分) 题号:360
/*------------------------------------------------
【程序设计】
--------------------------------------------------

功能:把20个随机数存入一个数组,然后输出该数组中的
最大值。

------------------------------------------------*/

#include
#define VSIZE 20
void wwjt();

int vector[VSIZE] ;
int fun(int list[],int size)
{
/**********Program**********/






/********** End **********/

}
main()
{
int i;
for (i=0;i{
vector[i]=rand();
printf("Vector[%d]=%6d\n",i,vector[i]);
}
i=fun(vector,VSIZE);
printf("\nMaxnum: Vector[%d]=%6d\n",i,vector[i]);

wwjt();
}
void wwjt()

{
int i,t;
FILE *fp ;
fp = fopen("out.dat", "w") ;
for (i=0;i{
fprintf(fp,"Vector[%d]=%6d\n",i,vector[i]);
}
t=fun(vector,VSIZE);
fprintf(fp,"\nMaxnum: Vector[%d]=%6d\n",t,vector[t]);
fclose(fp) ;
}
答案:----------------------
int i,max=0;
for(i=1; i if(list[max]max=i;
return max;
----------------------





















试卷编号:8159
所属语言:C语言
试卷方案:C语言201006模拟
试卷总分:100分
共有题型:5种

━━━━━━━━━━━━━━━
一、判断 共10题 (共计20分)
━━━━━━━━━━━━━━━

第1题 (2.0分) 题号:36
若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。
答案:N

第2题 (2.0分) 题号:1094
设有数组定义: char array [ ]="hello"; 则数组 array所占的空间为5.
答案:N

第3题 (2.0分) 题号:28
如果函数值的类型和return语句中表达式的值不一致,则以
函数类型为准。
答案:Y

第4题 (2.0分) 题号:1108
有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 *(P+8).
答案:Y

第5题 (2.0分) 题号:1279
循环结构while、do while、for不可以互相嵌套.
答案:N

第6题 (2.0分) 题号:1262
如有定义:char c[]="Program";则数组c的长度为8.
答案:Y

第7题 (2.0分) 题号:1280
C语言程序中用到的所有变量必须在使用之前进行定义.
答案:Y

第8题 (2.0分) 题号:1229
函数嵌套就是在定义函数的函数体中调用被定义的函数本身.
答案:N

第9题 (2.0分) 题号:1258

果函数的类型没有定义,则这个函数的类型是void.
答案:N

第10题 (2.0分) 题号:1255
若定义了一维数组a,则下标为i的元素值可以用*(a+i)或a[i]来计算.
答案:Y

━━━━━━━━━━━━━━━━━
二、单项选择 共15题 (共计30分)
━━━━━━━━━━━━━━━━━

第1题 (2.0分) 题号:113
执行下列语句后变量x和y的值是()。
y=10;x=y++;
A:x=10,y=10
B:x=11,y=11
C:x=10,y=11
D:x=11,y=10

答案:C

第2题 (2.0分) 题号:167
下列语句中,不正确的是()。
A:char a[2]={1,2};
B:int a[2]={'1','2'};
C:char a[2]={'1','2','3'};
D:char a[2]={'1'};

答案:C

第3题 (2.0分) 题号:187
经过下列的语句 int j,a[10],*p;定义后,下列语句中合法的是()。
A:p=p+2;
B:p=a[5];
C:p=a[2]+2;
D:p=&(j+2);

答案:A

第4题 (2.0分) 题号:100
以下标识符中,不能作为合法的C用户定义标识符的是()。
A:putchar
B:_double
C:_123
D:INT

答案:A

第5题 (2.0分) 题号:663
以下不正确的说法是:C语言规定()。
A:实参可以是常量,变量或表达式
B:形参可以是常量,变量或表达式
C:实参可以为任何类型
D:形参应与其对应的实参类型一致

答案:B

第6题 (2.0分) 题号:139
定义双精度实型变量应使用( ).
A:long int
B:float
C:char
D:double

答案:D

第7题 (2.0分) 题号:3130
下列说法中错误的是
A:一个数组只允许存储同种类型的变量
B:如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值
C:数组的名称其实是数组在内存中的首地址
D:当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改

答案:B

第8题 (2.0分) 题号:565
以下叙述中正确的是()。
A:C语言的源程序不必通过编译就可以直接运行
B:C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C:C源程序经编译形成的二进制代码可以直接运行
D:C语言中的函数不可以单独进行编译

答案:B

第9题 (2.0分) 题号:89
以下标识符中,不能作为合法的C用户定义标识符的是()。
A:a3_b3
B:void
C:_123
D:IF

答案:B

第10题 (2.0分) 题号:110
C语言中,char类型数据占()。
A:1个字节
B:2个字节
C:4个字节
D:8个字节

答案:A

第11题 (2.0分) 题号:633
对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。

A:将5个初值依次赋给a[1]至a[5]
B:将5个初值依次赋给a[0]至a[4]
C:将5个初值依次赋给a[6]至a[10]
D:因为数组长度与初值的个数不相同,所以此语句不正确

答案:B

第12题 (2.0分) 题号:214
有如下定义:FILE *fp;若以只读

方式打开文本文件"a.txt",应选择语句( ).
A:fp=open("a.txt","r");
B:fp=fopen("a.txt","r");
C:fp=open("a.txt","w");
D:fp=fopen("a.txt","w");

答案:B

第13题 (2.0分) 题号:125
下列程序的输出结果是()。
main()
{int a=7,b=5;
printf("%d\n",b=b/a);
}
A:0
B:5
C:1
D:不确定值

答案:A

第14题 (2.0分) 题号:566
一个C程序的执行是从()。
A:本程序的main函数开始,到main函数结束
B:本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C:本程序的main函数开始,到本程序文件的最后一个函数结束
D:本程序文件的第一个函数开始,到本程序main函数结束

答案:A

第15题 (2.0分) 题号:707
若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是()。
A:p1=&m;p2=&p1
B:p1=&m;p2=&n;*p1=*p2;
C:p1=&m;p2=p1;
D:p1=&m;*p2=*p1;

答案:C

━━━━━━━━━━━━━━━━
三、程序填空 共1题 (共计15分)
━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:612
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

题目:下面程序的功能是用递归法求n!。
-------------------------------------------------------*/
#include
void main()
{
/***********SPACE***********/
【?】;
int n;
long y;
printf("input an integer number:");
scanf("%d",&n);
/***********SPACE***********/
y=【?】;
printf("%d!=%ld\n",n,y);
}

long fac(int n)
{
long f;
if(n<0)
printf("n<0,data error!");
else if(n==0,n==1)
f=1;
else
/***********SPACE***********/
f=【?】;
return(f);
}
答案:

=======(答案1)=======
long fac(int n)

=======(答案2)=======
fac(n)

=======(答案3)=======
fac(n-1)*n
=========或=========
n *fac(n-1)


━━━━━━━━━━━━━━━━
四、程序改错 共1题 (共计15分)
━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:16
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------

功能:实现交换两个整数的值。
例如:给a和b分别输入3和6 ,输出为a=6 b=3

------------------------------------------------------*/
#include
/**********FOUND**********/
void fun (int a, b)
{
int t;
/**********FOUND**********/
t=a;
/**********FOUND**********/
a=b;
/**********FOUND**********/
b=t;
}

void main()
{ void fun (int a, int b);
int a,b;
printf("enter a b:");scanf("%d%d",&a,&b);
fun(&a,&b);
printf("a=%d b=%d\n",a,b);
}
答案:

=======(答案1)=======
void fun (int *a,int *b)
=========或=========
fun (int *a,int *b)

=======(答案2)=======
t=*a;

=======(答案3)=======
*a=*b;

=

======(答案4)=======
*b=t;


━━━━━━━━━━━━━━━━
五、程序设计 共1题 (共计20分)
━━━━━━━━━━━━━━━━

第1题 (20.0分) 题号:502
#include
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------

题目:用while语句求1~100的累计和。

-------------------------------------------------------*/
void wwjt();

int fun(int n)
{

/**********Program**********/



/********** End **********/

}

void main()
{ int fun(int n);

int sum = 0;

sum=fun(100);

printf ("sum = %d\n", sum);

wwjt();

}

void wwjt()
{
FILE *IN,*OUT;
int i;
int iIN,iOUT;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..it May Be Changed");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. it May Be Changed");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案: int i=1,sum=0;
while(i<=n)
{
sum=sum+i;
i++;
}
return sum;


























试卷编号:8160
所属语言:C语言
试卷方案:C语言201006模拟
试卷总分:100分
共有题型:5种

━━━━━━━━━━━━━━━
一、判断 共10题 (共计20分)
━━━━━━━━━━━━━━━

第1题 (2.0分) 题号:1224
在C语言程序中, 同一个问题可以有多种实现算法.
答案:Y

第2题 (2.0分) 题号:1151
用链表和数组存储数据,都需要系统预先分配长度足够的连续存储空间.
答案:N

第3题 (2.0分) 题号:1271
定义一种结构体类型后,则用该类型定义的所有变量占用内存的大小是相同的.
答案:Y

第4题 (2.0分) 题号:814
C语言程序中,二维数组在内存中按行逐列存储.
答案:Y

第5题 (2.0分) 题号:1258
如果函数的类型没有定义,则这个函数的类型是void.
答案:N

第6题 (2.0分) 题号:1239
若有定义int arr[]={1,2,3,4};则说明arr数组的长度任意.
答案:N

第7题 (2.0分) 题号:1230
在函数调用时,实参可以是常量,变量,也可以是表达式.
答案:Y

第8题 (2.0分) 题号:1257
用#define M 30 定义 M后,可以使用int arr

-;语句定义数组arr.
答案:Y

第9题 (2.0分) 题号:18
a=(b=4)+(c=6) 是一个合法的赋值表达式。
答案:Y

第10题 (2.0分) 题号:1142
C语言不允许数组名作为函数参数进行函数调用.
答案:N

━━━━━━━━━━━━━━━━━
二、单项选择 共15题 (共计30分)
━━━━━━━━━━━━━━━━━


第1题 (2.0分) 题号:133
以下各标识符中,合法的用户标识符为( ).
A:mystery
B:A#C
C:main
D:ab*

答案:A

第2题 (2.0分) 题号:673
C语言规定,函数返回值的类型是由()。
A:return语句中的表达式类型所决定
B:调用该函数时的主调函数类型所决定
C:调用该函数时系统临时决定
D:在定义该函数时所指定的函数类型所决定

答案:D

第3题 (2.0分) 题号:3563
以下函数的类型是______。
fff(float x)
{
return 5;
}

A:与参数x的类型相同
B:void 类型
C:int类型
D:无法确定

答案:C

第4题 (2.0分) 题号:178
以下对C语言函数的描述中,正确的是()。
A:C程序必须由一个或一个以上的函数组成
B:C函数既可以嵌套定义又可以递归调用
C:函数必须有返回值,否则不能使用函数
D:C程序中有调用关系的所有函数必须放在同一个程序文件中

答案:A

第5题 (2.0分) 题号:115
先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是()。
A:c='a';
B:c="a";
C:c="97";
D:C='97'

答案:A

第6题 (2.0分) 题号:3123
下列数据中属于"字符串常量"的是
A:ABC
B:"ABC"
C:'ABC'
D:'A'

答案:B

第7题 (2.0分) 题号:3159
字符串指针变量中存入的是
A:字符串
B:字符串的首地址
C:第一个字符
D:字符串变量

答案:B

第8题 (2.0分) 题号:539
C语言程序中必须有的函数是()。
A:#include "stdio.h"
B:main
C:printf
D:scanf

答案:B

第9题 (2.0分) 题号:3162
若变量已正确定义,执行语句scanf("%d,%d,%d ",&k1,&k2,&k3);时,___是正确的输入
A:2030,40
B:20 30 40
C:20, 30 40
D:20,30,40

答案:D

第10题 (2.0分) 题号:139
定义双精度实型变量应使用( ).
A:long int
B:float
C:char
D:double

答案:D

第11题 (2.0分) 题号:202
定义变量 int *p,a; 则以下描述正确的是( ).
A:p和a都是整型变量
B:p是用于指向整型变量的指针
C:p的值是a的地址
D:p是指向a的指针

答案:B

第12题 (2.0分) 题号:126
下列( )可以作为用户自定义的变量名使用.
A:if
B:#a334
C:return
D:_example

答案:D

第13题 (2.0分) 题号:563
以下叙述中正确的是()。
A:构成C程序的基本单位是函数
B:可以在一个函数中定义另一个函数
C:main()函数必须放在其它函数之前
D:所有被调用的函数一定要在调用之前进行定义

答案:A

第14题 (2.0分) 题号:663
以下不正确的说法是:C语言规定()。
A:实参可以是常量,变量或表达式
B:形参可以是常量,变量或表达式
C:实参可以为任何类型
D:形参应与其对应的实参类型一致

答案:B

第15题 (2.0分) 题号:669
若用数组名作为函数的实参,传递给形参的是

()。
A:数组的首地址
B:数组第一个元素的值
C:数组中全部元素的值
D:数组元素的个数

答案:A

━━━━━━━━━━━━━━━━
三、程序填空 共1题 (共计15分)
━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:412
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

功能:写一个函数,求一个字符串的长度,在main函数中输入字
符串,并输出其长度。

-------------------------------------------------------*/

#include
void main()
{
int length(char *p);
int len;
char str[20];
printf("please input a string:\n");
scanf("%s",str);
/***********SPACE***********/
len=length(【?】);
printf("the string has %d characters.",len);
}

/***********SPACE***********/
【?】(char *p)
{
int n;
n=0;
while(*p!='\0')
{
n++;
/***********SPACE***********/
【?】;
}
return n;
}
答案:

=======(答案1)=======
str

=======(答案2)=======
length
=========或=========
int length

=======(答案3)=======
p++
=========或=========
++p
=========或=========
p=p+1
=========或=========
p+=1


━━━━━━━━━━━━━━━━
四、程序改错 共1题 (共计15分)
━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:397
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------

功能:输入两个实数,按代数值由小到大输出它们,并在fun()
函数中输出。(输出的数据都保留2位小数)

------------------------------------------------------*/

#include


void fun()
{
/**********FOUND**********/
float t
float a, b ;
scanf("%f %f",&a,&b);
/**********FOUND**********/
if(a{
t=a;
a=b;
b=t;
}
/**********FOUND**********/
printf("%5.2f ,%5.2f\n",&a,&b);
}

void main()
{ void fun();
fun();
}
答案:

=======(答案1)=======
float t;

=======(答案2)=======
if(a>b)

=======(答案3)=======
printf("%5.2f, %5.2f\n",a,b);


━━━━━━━━━━━━━━━━
五、程序设计 共1题 (共计20分)
━━━━━━━━━━━━━━━━

第1题 (20.0分) 题号:23
/*------------------------------------------------
【程序设计】
--------------------------------------------------

功能:从键盘输入一个大于3的整数,调用函数fun判断
其是否素数,然后在main函数中输出相应的结论
信息。
例如:7是素数,8不是素数。请编写fun函数。素数是
仅能被1和自身整除的数

-------------------------------------------------*/

#include
void wwjt();

int fun(int n)
{


/**********Program**********/






/********** End **********/
}

void main()
{ int fun(int n);
int m,flag;
printf("input an integer:");
scanf("%d",&m);
flag=fun(m);
if(flag)
printf("%d is a prime.\n",m);
else
printf("%d is not a prime.\n",m);
wwjt();
}

void wwjt()
{
FILE *IN,*OUT;
int iIN,iOUT,i;
IN=fopen("5.IN","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..it May Be Changed");
}
OUT=fopen("5.out","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. it May Be Changed");
}
for(i=0;i<10;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int i;
int j;
j= 1;
for(i=2;i{if(n%i==0) j= 0;
}
return j;
----------------------













试卷编号:8161
所属语言:C语言
试卷方案:C语言201006模拟
试卷总分:100分
共有题型:5种

━━━━━━━━━━━━━━━
一、判断 共10题 (共计20分)
━━━━━━━━━━━━━━━

第1题 (2.0分) 题号:33
int i,*p=&i;是正确的C说明。
答案:Y

第2题 (2.0分) 题号:820
函数嵌套是在函数的函数体中定义另外的函数.
答案:N

第3题 (2.0分) 题号:1270
用puts和gets函数每次调用可以输入输出多个字符串.
答案:N

第4题 (2.0分) 题号:26
int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列
的元素赋初值,其余元素值为0。
答案:Y

第5题 (2.0分) 题号:23
若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"。
答案:Y

第6题 (2.0分) 题号:1150
0x1A、219、0678都是合法的常量.
答案:N

第7题 (2.0分) 题号:1225
在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量.
答案:Y

第8题 (2.0分) 题号:1232
在C语言中,INT可以被定义为变量名.
答案:Y

第9题 (2.0分) 题号:1144
C语言程序中,数组中的每一个元素都必须是同一种数据类型.
答案:Y

第10题 (2.0分) 题号:1269
若定义int a[4]={1,2,3,4};若超界引用a[4]则编译时不报错.
答案:Y

━━━━━━━━━━━━━━━━━
二、单项选择 共15题 (共计30分)
━━━━━━━━━━━━━━━━━

第1题 (2.0分) 题号:167
下列语句中,不正确的是()。
A:char a[2]={1,2};
B:int a[2]={'1','2'};
C:char a[2]={'1','2','3'};
D:char a[2]={'1'};

答案:C

第2题 (2.0分) 题号:87
C语言源程序的基本单位是()。
A:过程
B:函数
C:子程序
D:标识符

答案:B

第3题 (2.0分) 题号:3162
若变量已正确定义,执行语句scanf("%d,%d,%d ",&k1,&k2,&k3);时,___是正确的输入
A:2030,40
B:20 30 40

C:20, 30 40
D:20,30,40

答案:D

第4题 (2.0分) 题号:563
以下叙述中正确的是()。
A:构成C程序的基本单位是函数
B:可以在一个函数中定义另一个函数
C:main()函数必须放在其它函数之前
D:所有被调用的函数一定要在调用之前进行定义

答案:A

第5题 (2.0分) 题号:586
以下选项中合法的实型常数是()。
A:5E2.0
B:E-3
C:.2E0
D:1.3E

答案:C

第6题 (2.0分) 题号:136
在C语言中,不正确的int类型的常数是( ).
A:32768
B:0
C:37
D:0xAF

答案:A

第7题 (2.0分) 题号:555
选择结构中的条件与循环结构中循环成立的条件,
在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。
哪个数作为逻辑“假”值()。
A:-1
B:1
C:非零的数
D:0

答案:D

第8题 (2.0分) 题号:622
putchar函数可以向终端输出一个()。
A:整型变量表达式值
B:实型变量值
C:字符串
D:字符或字符型变量值

答案:D

第9题 (2.0分) 题号:3163
C语言中while和do—while循环的主要区别是
A:While的循环控制条件比do—while的循环控制条件严格
B:do—while的循环体至少无条件执行一次
C:do—while允许从外部转到循环体内
D:do—while循环体不能是复合语句

答案:B

第10题 (2.0分) 题号:3116
若变量均已正确定义并赋值,以下合法的C语言赋值语句是
A:x=n/2.5;
B:x==5;
C:x+n=I;
D:5=x=4+1;

答案:A

第11题 (2.0分) 题号:525
C语言中不可以嵌套的是()。
A:函数调用
B:函数定义
C:循环语句
D:选择语句

答案:B

第12题 (2.0分) 题号:704
变量的指针,其含义是指该变量的()。
A:值
B:地址
C:名
D:一个标志

答案:B

第13题 (2.0分) 题号:107
设C语言中,int类型数据占2个字节,则long类型数据占()。
A:1个字节
B:2个字节
C:4个字节
D:8个字节

答案:C

第14题 (2.0分) 题号:109
C语言中,double类型数据占()。
A:1个字节
B:2个字节
C:4个字节
D:8个字节

答案:D

第15题 (2.0分) 题号:711
下列选项中正确的语句组是()。
A:char s[8]; s={"Beijing"};
B:char *s; s={"Beijing"};
C:char s[8]; s="Beijing";
D:char *s; s="Beijing";

答案:D

━━━━━━━━━━━━━━━━
三、程序填空 共1题 (共计15分)
━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:432
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

功能:计算平均成绩并统计90分以上人数。

-------------------------------------------------------*/
#include
void main()
{
int n,m;
float grade,average;
average=0.0;
/***********SPACE***********/
n=m=【?】;
wh

ile(1)
{
/***********SPACE***********/
【?】("%f",&grade);
if(grade<0) break;
n++;
average+=grade;
/***********SPACE***********/
if(grade<90)【?】;
m++;
}
if(n) printf("%.2f,%d\n",average/n,m);
}
答案:

=======(答案1)=======
0

=======(答案2)=======
scanf

=======(答案3)=======
continue


━━━━━━━━━━━━━━━━
四、程序改错 共1题 (共计15分)
━━━━━━━━━━━━━━━━

第1题 (15.0分) 题号:442
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------

功能:写一个函数,求一个字符串的长度,在main函数中输入字
符串,并输出其长度。

------------------------------------------------------*/

#include
#include

int length(char *p)
{
int n;
n=0;
/**********FOUND**********/
while(*p=='\0')
{
n++;
p++;
}
return n;
}

void main()
{ int length(char *p);
int len;
/**********FOUND**********/
char *str[20];
printf("please input a string:\n");
scanf("%s",str);
/**********FOUND**********/
len==length(str);
printf("the string has %d characters.",len);
}
答案:

=======(答案1)=======
while(*p!='\0')
=========或=========
while(*p)
=========或=========
while(*p!=0)
=========或=========
while(*p!=NULL)

=======(答案2)=======
char str[20];

=======(答案3)=======
len=length(str);


━━━━━━━━━━━━━━━━
五、程序设计 共1题 (共计20分)
━━━━━━━━━━━━━━━━

第1题 (20.0分) 题号:365
/*------------------------------------------------
【程序设计】
--------------------------------------------------

功能:求1到100之间的偶数之积。

------------------------------------------------*/

#include
void wwjt();

double fun(int m)
{

/**********Program**********/






/********** End **********/

}

void main()
{ double fun(int m);
printf("ji=%lf\n",fun(100));
wwjt();
}

void wwjt()
{
FILE *IN,*OUT;
int iIN,i;
double dOUT;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..it May Be Changed");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. it May Be Changed");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%d",&iIN);
dOUT=fun(iIN);
fprintf(OUT,"%f\n",dOUT);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
double y=1;
int i;
for(i=1;i<=m;i++)
if(i%2==0)y*=i;
return y;
----------------------

相关主题