试卷编号:942
所属语言:C语言
试卷方案:C模拟一(本科)
试卷总分:100分
共有题型:5种
一、填空 共5题 (共计10分)
第1题 (2.0分)
若int x=6;则x+=x-=x*x表达式最后x的值是【1】.
第2题 (2.0分)
以下程序的输出结果是【1】.
main()
{ char s[]="1234",*p;
for(p=s;p<s+2;p++)
printf("%s,",p);
}
第3题 (2.0分)
在微机中,字符的比较就是对它们的【1】进行比较。
第4题 (2.0分)
下列程序的运行结果是【1】,main(){unsigned x1; int b=-1;x1=b;printf("%u",x1);} 第5题 (2.0分)
若有声明"float y=3.14619;int x;",则计算表达式"x=y*100+0.5,y=x/100.0"后y的值是
【1】.(2009年春江苏省二级C)
二、单项选择 共25题 (共计50分)
第1题 (2.0分)
下列程序的输出结果是()。
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{
case 1:switch(y)
{
case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
case 3:a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
A:a=1,b=0
B:a=2,b=1
C:a=1,b=1
第2题 (2.0分)
以下程序中,while循环的循环次数是______
main()
{
int i=0;
while(i<10)
{
if(i<1) continue;
if(i==5) break;
i++;
}
}
A:1
B:4
C:6
D:死循环,不能确定次数
第3题 (2.0分)
定义共用体的关键字是
A:union
B:enum
C:struct
D:typedef
第4题 (2.0分)
以下程序段的输出结果是()。
char *alp[]={"ABC","DEF","GHI"}; int j; puts(alp[1]);
A:A
B:B
C:D
D:DEF
第5题 (2.0分)
下面说明不正确的是()。
A:char a[10]="china";
B:char a[10],*p=a;p="china"
C:char *a;a="china";
D:char a[10],*p;p=a="china"
第6题 (2.0分)
main()
{ int i = 10, j = 1;
printf("%d,%d\n",i--, ++j);
}
执行后输出结果是
A:9,2
B:10,2
C:9,1
D:10,1
第7题 (2.0分)
若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。
A:2
B:3
C:4
D:无确定值
第8题 (2.0分)
以下数据中,不正确的数值或字符常量是()。
A:c
B:66
C:0xaa
D:50
第9题 (2.0分)
在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类型是
A:extern
B:register
C:auto
D:static
第10题 (2.0分)
若希望当A的值为奇数时,表达式的值为"真",A的值为偶数 表达式的值
为"假".则以下不能满足要求的表达式是:
A:A%2==1
B:!(A%2==0)
C:!(A%2)
D:A%2
第11题 (2.0分)
若调用fputc函数输出字符成功,则其返回值是()。
A:EOF
B:1
C:0
D:输出的字符
第12题 (2.0分)
有如下的定义:int i;int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( ) for(i=0;i<3;i++)
printf("%d,",a[i][2-i]);
A:1,5,9
B:1,4,7
C:3,5,7
D:3,6,9
第13题 (2.0分)
两个指针变量不可以()。
A:相加
B:比较
C:相减
D:指向同一地址
第14题 (2.0分)
C语言源程序的基本单位是()。
A:过程
B:函数
C:子程序
D:标识符
第15题 (2.0分)
若int类型占两个字节,则以下程序段的输出是
int a=-1;
printf("%d, %u\n", a, a);
A:-1,-1
B:-1,65535
C:-132,768
D:-165,535
第16题 (2.0分)
C 语言程序的三种基本结构是顺序结构、选择结构和______结构.
A:循环
B:递归
C:转移
D:嵌套
第17题 (2.0分)
一个C语言程序是由()。
A:一个主程序和若干子程序组成
B:函数组成
C:若干过程组成
D:若干子程序组成
第18题 (2.0分)
以下不能定义为用户标识符的是_____.
A:scanf
B:Void
C:_3com
D:int
第19题 (2.0分)
已知在某C语言编译系统中表达式sizeof(int)的值是2,如果希望将常量
-70000正确地保存在一个变量a中,该变量声明语句应当是( ).(2002年秋江苏省二级C)
A:int a;
B:long int a;
C:unsigned int a;
D:unsigned long int a;
第20题 (2.0分)
以下程序的执行结果是_______.
main()
{ int num = 0;
while(num<=2) { num++; printf( "%d,",num ); }
}
A:0,1,2
B:1,2,
C:1,2,3,
D:1,2,3,4,
第21题 (2.0分)
已定义两个字符数组a,b,则以下正确的输入格式
是
A:scanf("%s%s", a, b);
B:get(a, b);
C:scanf("%s%s", &a, &b);
D:gets("a"),gets("b");
第22题 (2.0分)
若有说明 int a[3][4];则a数组元素的非法引用是()。
A:a[0][2*1]
B:a[1][3]
C:a[4-2][0]
D:a[0][4]
第23题 (2.0分)
字符串指针变量中存入的是
A:字符串
B:字符串的首地址
C:第一个字符
D:字符串变量
第24题 (2.0分)
整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的 表达式是()。
A:x || y
B:x | y
C:x & y
D:x ^ y
第25题 (2.0分)
设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。 A:552
B:144
C:264
D:-264
三、程序填空 共2题 (共计15分)
第1题 (7.5分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:用等分法在有序的循环数组中,找到最小元素的位置。
-------------------------------------------------------*/
#include <stdio.h>
int cyclic_min(int x[], int n)
{
int left = 0;
int right = n - 1;
int mid;
/***********SPACE***********/
while (【?】)
{
mid = (left + right)/2;
if (x[mid] < x[right])
/***********SPACE***********/
【?】;
else
/***********SPACE***********/
【?】;
}
return left;
}
#include <stdio.h>
void main(void)
{
int x[] = { 20, 23, 28, 35, 39, 40, 42, 8, 10, 15, 17, 19}; int n = sizeof(x)/sizeof(int);
int loc, i;
printf("\nFind Cyclic Minimum");
printf("\n===================");
printf("\n\nGiven Array Sorted in Cyclic Fashion :\n"); for (i = 0; i < n; i++)
printf("%3d", x[i]);
loc = cyclic_min(x, n);
printf("\n\nMinimum is located at x[%d] = %d", loc, x[loc]); }
第2题 (7.5分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:在歌星大奖赛中,有10个评委为参赛的选手打分,分数为
1~100分。选手最后得分为:去掉一个最高分和一个最低分 后其余8个分数的平均值。请编写一个程序实现。
-------------------------------------------------------*/
#include<stdio.h>
void main()
{
int score,i,max,min,sum;
max=-32768;
min=32767;
sum=0;
for(i=1;i<=10;i++)
{
printf("input number %d=",i);
/***********SPACE***********/
scanf("%d",【?】);
sum+=score;
/***********SPACE***********/
if(【?】) max=score;
/***********SPACE***********/
if(【?】) min=score;
}
printf("Canceled max score:%d\nCanceled min score:%d\n",max,min); /***********SPACE***********/
printf("Average score:%d\n",【?】);
}
四、程序改错 共2题 (共计15分)
第1题 (7.5分)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:给定n个实数,输出平均值,并统计在平均值以下(含平
均值)的实数个数。
例如:n=6时,输入23.5, 45.67, 12.1, 6.4,58.9, 98.4所得
平均值为40.828335,在平均值以下的实数个数应为3。
------------------------------------------------------*/
#include <stdio.h>
int fun(double x[],int n)
{
int j,c=0;
/**********FOUND**********/
float j=0;
/**********FOUND**********/
for(j=0;j<=n;j++)
xa+=x[j];
xa=xa/n;
printf("ave=%f\n",xa);
/**********FOUND**********/
for(j=0;j<=n;j++)
if(x[j]<=xa) c++;
/**********FOUND**********/
return xa;
}
main()
{
double x[]={23.5,45.67,12.1,6.4,58.9,98.4};
printf("%d\n",fun(x,6));
}
第2题 (7.5分)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:分别统计字符串中大写字母和小写字母的个数。
例如:给字符串 s 输入:AAaaBBb123CCccccd,
则应输出结果:upper = 6, lower = 8。
------------------------------------------------------*/
#include <conio.h>
#include <stdio.h>
/**********FOUND**********/
void fun ( char *s, int a, int b )
{
while ( *s )
{
if ( *s >= 'A' && *s <= 'Z' )
/**********FOUND**********/
a++ ;
if ( *s >= 'a' && *s <= 'z' )
/**********FOUND**********/
b++;
s++;
}
}
main( )
{
char s[100]; int upper = 0, lower = 0 ;
printf( "\nPlease a string : " ); gets ( s ); fun ( s, & upper, &lower );
printf( "\n upper = %d lower = %d\n", upper, lower ); }
五、程序设计 共1题 (共计10分)
第1题 (10.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:编写函数fun,求任一整数m的n次方。
------------------------------------------------*/
#include <stdio.h>
void wwjt();
long fun(int m,int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int m,n;
long s;
long fun(int,int);
printf("输入m和n的值:");
scanf("%d,%d",&m,&n);
s=fun(m,n);
printf("s=%ld\n",s);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int n;
int i[2];
long o;
IN=fopen("in.dat","r"); if(IN==NULL)
{
printf("Read FILE Error"); }
OUT=fopen("out.dat","w"); if(OUT==NULL)
{
printf("Write FILE Error"); }
for(n=0;n<2;n++)
{
fscanf(IN,"%d",&i[n]); }
o = fun(i[0],i[1]);
fprintf(OUT,"%ld\n",o);
fclose(IN);
fclose(OUT);
}