C语言模拟试题1
不一致时最终起决定作用的是 return 中表达式的类型。( )
10.定义指针变量时指定的类型称为基类型,基类型是指针变量所指向变量的类型,因此指
针变量被定义之后都只能指向某一类型的变量。( )
三、程序填空题(本大题 12 分,每小题 2 分)
1.输入一个字符,如果是大写字母,则把其变成小写字母;如果是小写字母,则变成大写字
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) );
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
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>
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
{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;}
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)___ ; }
}
“China”连接到“Beijing”之后的为:
。
A)strcpy(str1,str2);
B)strcpy(str1, “China”); C)strcat(str1,“China”)
D)strcat(“Beijing”,str2);
8.以下对一维整型数组 a 的正确说明是
。
A)int a(10);
。
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;
D)1 4 7
二、判断题(本大题 10 分,每小题 1 分)
1.C 语言本身没有输入输出语句,输入输出操作都是通过调用库函数来实现的。( )
2.在 C 语言中,int、char 和 short 三种类型数据在内存中所占用的字节数都是由用户自己定
义的。( )
3.在 C 程序中一行内可以写几个语句,一个语句可以分写在多行上。因此,并不是每一条 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
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 语句中表达式的类型共同决定的,当这两类型
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;
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>
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 的值分别为:
母;其它字符不变。请填空:
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 中并按矩阵形式输出。请填空:
printf(“%f, %5.3f\n”,a,b); }
2.main( )
{ char a[5][5],i,j;
for(i=0;i<5;i++)