文档库 最新最全的文档下载
当前位置:文档库 › C语言模拟试卷3(1)

C语言模拟试卷3(1)

C语言模拟试卷3(1)
C语言模拟试卷3(1)

C程序设计模拟试卷3

一.单项选择题

1.制C语言程序的步骤是( D )

A)编译、编辑、运行、连接B)编译、编辑、连接、运行

C)编辑、编译、运行、连接D)编辑、编译、连接、运行

2.C语言中函数开始和结束的标志是( A)

A)一对花括号B)一对方括号

C)一对圆括号 D) 一对双引号

3.设x为一个四位数的int型变量,能够取出该数的百位数字表达式的是( B )

A)x%1000 B)x%1000/100 C)x/1000 D)x/1000%100

4.设x为int型变量,下列选项中能够判定x值为偶数的表达式是( C)

A)x%2=0 B)x/2=0 C)x%2==0 D) x/2==0

5.设a、b、c、d均为int型变量,且初始值都为2,则执行语句“c=(b,a+2,d=6)”后,变量c的值为( D )

A)2 B) 3 C) 4 D) 6

6.下面关于switch语句和break语句的结论中,正确的是( B )

A)break语句是switch语句的一部分

B)在switch语句中,可以根据需要确定使用或不使用break语句

C)在switch语句中,必须使用break语句

D)break语句只能用在switch语句中

7.下列条件语句中,功能与其它语句不同的是( D )

A) if(a) printf("%d\n", x);else printf("%d\n", y);

B) if(a= =0) printf("%d\n", y);else printf("%d\n", x);

C) if(a!=0) printf("%d\n", x);else printf("%d\n", y);

D) if(a= =0) printf("%d\n", x);else printf("%d\n", y);

8.有以下程序:

#include

int main( )

{

int i=1,j=2,k=3;

if(i++ = = 1&&( ++ j = = 3 || k ++ = =3))

printf("% d % d % d\n",i,j,k);

}

程序运行后的输出结果是( D )

A)1 2 3 B)2 3 4 C)2 2 3D)2 3 3 9.若执行以下程序时从键盘输入5,则输出结果是( A )

#include

int main( )

{

int x;

scanf("%d ",&x);

if(x-- <5) printf("%d\n" ,x);

else printf("%d\n", --x);

}

A) 3 B) 4 C) 5 D) 6

10.下列程序段运行后x的值是( A)

#include

int main( )

{

int a = 0, b = 0,c = 0,x=35;

if(!a)x--;

else if(b)

if(c)x = 3;

else x = 4;

printf("%d\n",x);

}

A) 34 B) 4 C) 35 D) 3

11.下面的while循环,执行次数是( A)

i=4;

while( --i)

printf("%d,i);

A)3次 B)4次 C) 0次 D)无数次

12.下列语句中,可以输出26个大写英文字母的是( C )

A) for(a='A';a<='Z';printf("%c", ++a));

B) for(a='A';a<'Z';printf("%c", a++));

C) for(a='A';a<='Z';printf("%c", a++));

D) for(a='A';a<'Z';printf("%c", ++a));

13.以下对二维数组a不正确的定义是( C )

A) char a[10] [5];B) int a[2] [3];

C) int k=5,a[k] [k-2]; D) int a[3] [4]={{1},{5},{9}};

14.以下语句的输出结果是( A)

printf("%d\n",strlen("\t\"\065\xff\n"));

A) 5 B) 14 C) 8 D)输出项不合法,不能输出

15.以下叙述中不正确的是( D )

A) 在不同的函数中可以使用相同名字的变量

B) 函数中的形式参数是局部变量

C) 在一个函数内定义的变量只在本函数范围内有效

D) 在一个函数内的复合语句中定义的变量在本函数范围内有效

16.在C语言程序中以下正确的描述是( B )

A) 函数的定义可以嵌套,但函数的调用不可以嵌套

B) 函数的定义不可以嵌套,但函数的调用可以嵌套

C) 函数的定义和函数的调用均不可以嵌套

D) 函数的定义和函数的调用均可以嵌套

17.如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为( A )

A) 静态变量B) 动态变量

C) 外部变量D) 内部变量

18.以下程序的输出结果是( C )

#include

int main( )

{int I,x[3][3]={9,8,7,6,5,4,3,2,1}, *p=&x[1][1];

for(I=0;I<4;I+ =2) printf ("%d",p[I]);

}

A)5 2 B)5 1 C)5 3D)9 7

19.不能把字符串“Hello!”赋给数组b的语句是( B )

A)char b[10]={'H','e','l','l','o','!'};

B)char b[10];b=“Hello!”;

C)char b[10];strcpy(b,“Hello!”);

D)char b[10]=“Hello!”

20.以下程序的输出结果是( D )

#include

int main( )

{ char a[10]={9,8,7,6,5,4,3,2,1,0}, *p=a+5;

printf("%d",*--p);

}

A)非法B)a[4]的地址C)3D)5

二、判断题

1、定义一个自动变量后若未初始化,其初值为一不可预测的数据。(√)

2、整型、实型、字符型数据之间不可以进行混合运算。(×)

3、在C语言中,实数是补码形式存放在存储单元中的。(×)

4、在定义字符型变量时既不加signed又不加unsigned,C语言是默认按signed 处理。(×)

5、在C语言的函数声明中形参名可以省写。(√)

6、外部变量的作用域是从一个程序文件的开头到本程序文件的末尾。(×)

7、实参数组名是指针常量,形参数组名是指针变量。(√)

8、不能对共用体变量名赋值。(√)

9、枚举元素可以用来作判断比较。(√)

10、赋值运算符是按照“自左而右”的结合顺序。(×)

三、填空题

1.设x和a为int型变量,则执行“x=a=6,4*a”之后,变量x的值为 6。

2.当x=2,y=8,z=5时,执行下面的if语句后,x、y、z的值分别

为: 5 、8 、8

#include

int main( )

{

int x=2,y=8,z=5;

if(x>z)

y=x;x=z;z=y;

printf("%d, %d, %d \n",x,y,z) ;

}

3.输入n个实数,输出其中的最大值、最小值。请将程序补充完整。

#include

int main( )

{ int n,i;

float num,nmax,nmin;

scanf("%d",&n);

scanf("%f",&num);

nmax= num;

nmin= num;

for(i=2;i<=n;i++)

{ scanf("%f",&num );

if(num >nmax)

nmax= num;

if( num

nmin=num ;

}

printf("MAX = %f MIN = %f\n",nmax,nmin);

}

3.输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,请将程序补充完整。

#include

int main( )

{ char ch;

int s1,s2;

s1=s2=0;

while((ch=getchar( )) != '\n')

{

if(ch>='0' &&ch<='9')

s1++;

if(ch>='a' &&ch<='z' || ch>='A' &&ch<='Z')

s2++;

}

printf("数字个数是:%d\n", s1 );

printf("字母个数是:%d\n", s2 );

5.一个指针变量p和数组a的定义如下:

int a[10], *p;

则p=&a[2]+3的含义是指针p指向数组a的第6个元素。

四、请给出下列程序的运行结果

1.下面程序的输出结果是: 0

#include

int main( )

{

int a=5,b=4,c=3,d;

d=(a>b>c);

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

}

2.当输入abAB$时,下面程序的输出结果是:ABAB #include

int main( )

{ char c;

while((c=getchar( ))! = '$')

{ if(c>='A' && c<='Z')

putchar(c);

else

if(c>='a' && c<='z')

putchar(c-32);

}

}

3.下面程序的输出结果是:1 3 7 15

#include

int main( )

{

int i,n[ ]={0,0,0,0,0};

for(i=1;i<=4;i++)

{

n[i]=n[i-1]*2+1;

printf("%d ",n[i]);

}

}

4. 下面程序的输出结果是:2 6

#include

int x =3;

void incre( )

{ static int x=1;

x*=x+1;

printf("%d ",x);

}

int main( )

{ int i;

for(i=1;i

}

5.下面程序的输出结果是:10

#include

#define N 10

f (int s[],int n)

{

int k,p;

for(p=0,k=p;p

if(s[p]>s[k]) k=p;

return(k);

}

int main( )

{

int a[N]={1,2,3,4,5,6,7,8,9,10};

printf("%d\n",a[f (a,N)]);

}

五、编程题

1.给出一个百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。(4_8)

2.写一个函数,使给定的一个3×3的二维整型数组行列互换。(7_4)

3. 输入3个字符串,按由小到大的顺序输出。要求用指针方法处理。

(8_2)

相关文档