C语言模拟试题1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11~15 A D D D A
二、判断题(本大题 10 分,每小题 1 分)
1.√ 2.×
3.× 4.×
5.√
6.× 7.√ 8.×
9.×
10.√
三、程序填空题(本大题 12 分,每小题 2 分)
评分标准:全对的满分,半对半错的给一半分,全错的不得分。
1.(1)ch>=’A’&& c<=’Z’
(2)ch=ch-32
(精确到 10-6)。 3.编一程序,首先将一个包含 10 个数的数组按照升序排列,然后将从一指定位
置 m 开始的 n 个数按照逆序重新排列,并将新生成的相互组输出。要求使用指 针控制方法实现上述功能。
模拟试题三答案
一、选择题(本大题 30 分,每小题 2 分)
1~5
ACBDD
6~10 B C D D A
{for(j=0;j<5;j++)
printf("%c",a[i][j]);
printf("\n"); }
}
3.main( )
{ int x, i ;
for( i=1,x=1; i<=50; i++ )
{ if(x>=10) break;
if(x%2==1) { x+=5;continue;}
x - = 3;}
main( )
{ int a[3][4] = { { 7, 5, -2, 3 },{ 1, 0, -3, 4 },{ 6, 8, 0, 2 } };
int b[3][4] = { { 5, -1, 7, 6 },{ -2, 0, 1, 4 },{ 2, 0, 8, 6 } };
int i, j, c[3][4];
“China”连接到“Beijing”之后的为:
。
A)strcpy(str1,str2);
B)strcpy(str1, “China”); C)strcat(str1,“China”)
D)strcat(“Beijing”,str2);
8.以下对一维整型数组 a 的正确说明是
。
A)int a(10);
void increment(void);
void main(void)
{
increment();
increment();
}
void increment(void)
{
static int x = 8;
x ++;
printf("x = %d\n", x);
}
6. #include <stdio.h> void main(void)
D) &a, &*point point
14.以下程序的运行结果是:
。
main( )
{ int a=2, i ;
for(i=0;i<3;i++) printf(“%4d”,f(a) ) ; }
f( int a)
{ int b=0; static int c=3
b++; c++; return(a+b+c); }
。
A)在 C 程序运算符中,逗号运算符优先级最低;
B)C 程序中,AHP 和 ahp 代表两个不同的变量; C)C 程序中,整数和实数在内存中存放形式相同;
D)在 C 程序中, %是只能用于整数运算的运算符.
3.已知 ch 是字符型变量,下面不正确的赋值语句是:
。
A)ch=‘\0’
B)ch=‘a+b’
for ( i=0; i<3; i++ )
for ( j=0; j<4; j++ )
c[i][j] = ___(3)____ ;
for ( i=0; i<3; i++ )
{ for ( j=0; j<4; j++ )
printf ( “%3d”, c[i][j] ) ;
____(4)___ ; }
}
printf(“%f, %5.3f\n”,a,b); }
2.main( )
{ char a[5][5],i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(i==0 ||i+j==4)
a[i][j]='*';
else a[i][j]=' '; for(i=0;i<5;i++)
Biblioteka Baidu
不一致时最终起决定作用的是 return 中表达式的类型。( )
10.定义指针变量时指定的类型称为基类型,基类型是指针变量所指向变量的类型,因此指
针变量被定义之后都只能指向某一类型的变量。( )
三、程序填空题(本大题 12 分,每小题 2 分)
1.输入一个字符,如果是大写字母,则把其变成小写字母;如果是小写字母,则变成大写字
{ static char a[]="ABCDEFGH",b[]="abCDefGh"; char *p1,*p2; int k; p1=a; p2=b; for(k=0;k<=7;k++)
if (*(p1+k)==*(p2+k)) printf("%c",*(p1+k)); printf("\n");
3.以下程序使用递归法求 n!,请填空:
float fac( int n)
{ float f;
if(n<0) {printf(“n<0” data error); f=-1;}
else if(n==0||n==1)
f=1;
else f= (5) ;
return( f ); }
main( )
{ int n; float y;
模拟试题三
一、选择题(本大题 30 分,每小题 2 分)
1.下列有关 C 程序的说法中,正确的是:
。
A) 一个 C 程序中只能有一个主函数且位置任意;
B)一个 C 程序中可有多个主函数且位置任意;
C)一个 C 程序中只能有一个主函数且位置固定;
D) 一个 C 程序中可以没有主函数。
2.以下叙述中不正确的是:
A)0
B)6
C)a[3]地址
D)不正确的值10.若 I 为整
型变量,则下列程序段的运行结果为
。
I=322;
if(I%2==0) printf(“#####”)
else printf(“*****”);
A)#####
B)#####*****
C)*****
D)有语法错误,无法输出结果
11.已知 int x=30,y=50,z=80;以下语句执行后变量 x、y、z 的值分别为:
A)A
B)a
C)Z
D)z
6.若 x 和 y 都为 float 型变量,且 x=3.6, y=5.8 执行下列语句后输出结果为:
。
printf(“%f”,(x,y));
A)3.600000
B)5.800000
C)3.600000,5.800000
D)输出符号不够,输出不正确值
7.设有两字符串“Beijing”、“China”分别存放在字符数组 str1[10],str2[10]中,下面语句中能把
A)7 10 13 C)7 9 11
B)7 7 7 D)7 8 9
15.若有如下定义:
int a[3][3]={1,2,3,4,5,6,7,8,9},i ;
则下列语句的输出结果是:
。
for (i=0;i<=2;i++) printf(“%d”,a[i][2-i]);
A)3 5 7
B)3 6 9
C)1 5 9
main() {float x,y; scanf(“%f”,&x); if(x<0) y=x*x; else if(x>=0&&x<10) y=-0.5*x+10; else y=x-sqrt(x); printf(“y=%f”,y); }
2. 17.main() {float a=1,b,pi,t=1; while(t>=1e-6) {pi=pi+t; a++; b=a*a; t=1/b; } pi=pi*6; printf(“pi=%f”,pi); } 3.#include <stdio.h> main( ) {int data[10],m,n,j,*p1,*p2,temp; printf(“\nInput 10 integer\n”); for(j=0;j<10;j++) scanf(“%d”,&data[j]); printf(“Input m and n:\n”); scanf(“%d%d”,&m,&n); if(m<1||m>10||n<1||n>10||(m+n)>11)
do-while 语句的循环体则可能一次也不执行。( )
7.数组首地址不仅能通过数组中第一个元素的地址表示,也可以通过数组名来表示。( )
8.在 C 语言中,只有在两个字符串所包含的字符个数相同时,才能比较大小。如字符串“That”
与“The”就不能进行大小比较。( )
9.函数的返回值类型是由函数的类型和 return 语句中表达式的类型共同决定的,当这两类型
B)int n=10,a[n];
C)int n; scanf(“%d”,&n); int a[n];
D)#define SIZE 10 int a[SIZE];
9.设有如下程序段,则其执行结果为:
。
static int a[ ]= { 1,2,3,4 }, *p ; int i;
p=a; (p+3) + =2; printf(“%d”,*(p+3) );
。
if (x>y||x<z&&y>z)
z=x; x=y; y=z;
A)x=50, y=80, z=80 B)x=50, y=30, z=30
C)x=30, y=50, z=80 D)x=80, y=30, z=50
12.下面程序段的运行结果是:
。
x=y=0; while(x<15) y++, x+=++y;
} 五.编程题(共 30 分) 1.有一函数,其函数关系如下,试编程求对应于每一自变量的函数值。
x2 y = -0.5x+10
(x<0)
(0 x<10)
x- x
(x 10)
2.若有如下公式:
2 1
1 1 1 +
+
+。。。。。。。+
6
12 22 32
n2
试根据上述公式编程计算 的近似值
2.(3)a[i][j]+b[i][j]
(4)printf(“\n”)
3.(5)n*fac(n-1)
(6)ac(n) 四、写出下面程序的执行结果(本大题 24 分,每小题 4 分)
评分标准:全对的满分,半对半错的给一半分,全错的不得分。
1.3.140000,3.141 2. *****
* * * * 3.8 4.21 5.x=9 x=10 6.CDG 五、编程题(本大题 24 分,第一题 7 分,第二题 8 分,第三题 9 分) 1. #include <math.h>
printf(“input a integer number”);
scanf(“%d”,&n);
y= (6);
printf(“%d! = %15.0f”, n, y ); }
四、写出下面程序的执行结果(本大题 24 分,每小题 4 分)
1.main( )
{ float a=3.14, b=3.14159;
母;其它字符不变。请填空:
main( )
{ char ch;
scanf(“%c”,&ch);
if ( (1) ) ch=ch+32;
else if(ch>’a’&&ch<‘z’) ((2));
printf(”%c\n”,ch); }
2. 以下程序是求矩阵 a , b 的和,结果存入矩阵 c 中并按矩阵形式输出。请填空:
C)ch=‘7’+‘9’
D)ch=7+9
4.设有如下定义
int x=10,y=5,z; 则语句 printf("%d\n",z=(x+=y,x/y));
的输出结果是
。
A)1
B)0
C)4
D)3
5.设有如下定义:char ch=’z’,则执行下面语句后变量 ch 是值为:
。
ch=(‘A’<=ch&&ch<=‘Z’)?(ch+32):ch
D)1 4 7
二、判断题(本大题 10 分,每小题 1 分)
1.C 语言本身没有输入输出语句,输入输出操作都是通过调用库函数来实现的。( )
2.在 C 语言中,int、char 和 short 三种类型数据在内存中所占用的字节数都是由用户自己定
义的。( )
3.在 C 程序中一行内可以写几个语句,一个语句可以分写在多行上。因此,并不是每一条 C
printf(“%d, %d”, y, x);
A)20, 7 C)20, 8
B)6, 12 D)8, 20 13.若有语句 int *point , a =45; point = &a;
下面均代表同一变量地址的一组选项是:
。
A)&a point *&a
B)&*a &a
*point
C)point &point &a
语句都必须有一个分号的。( )
4.在 C 语言的 if 语句中,用作条件判断的表达式只能是关系和逻辑表达式。( )
5.在 C 语言中 break 和 continue 都是循环中途退出语句,其中 break 语句用来跳出一层循环
结构;continue 语句用来结束一次循环。( )
6.C 语言中 while 和 do-while 循环的主要区别是 while 语句的循环体至少会被执行一次,而
printf(“%d\n”, i ); }
4.func( int x, int y)
{ int z;
z=a+b;
return(z); }
main( )
{ int a=6, b=7, c=8, r;
r=func( ( a--, b++, a+b), c--)
printf(“%d”, r) ; }
5.#include <STDIO.H>