C语言程序设计模拟题2.docx

上传人:b****8 文档编号:27870685 上传时间:2023-07-05 格式:DOCX 页数:47 大小:46.66KB
下载 相关 举报
C语言程序设计模拟题2.docx_第1页
第1页 / 共47页
C语言程序设计模拟题2.docx_第2页
第2页 / 共47页
C语言程序设计模拟题2.docx_第3页
第3页 / 共47页
C语言程序设计模拟题2.docx_第4页
第4页 / 共47页
C语言程序设计模拟题2.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

C语言程序设计模拟题2.docx

《C语言程序设计模拟题2.docx》由会员分享,可在线阅读,更多相关《C语言程序设计模拟题2.docx(47页珍藏版)》请在冰豆网上搜索。

C语言程序设计模拟题2.docx

C语言程序设计模拟题2

C语言第五套模拟题

一、单项选择

1先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是()。

A、C='97'B、c='a';C、c="97";D、c="a";

2已定义ch为字符型变量,以下赋值语句中错误的是()。

A、ch='\';B、ch='a';C、ch='\xaa';D、ch=62+3;

3已定义两个字符数组a,b,则以下正确的输入格式是()。

A、scanf("%s%s",&a,&b);B、scanf("%s%s",a,b);

C、get(a,b);D、gets("a"),gets("b");

4以下不正确的if语句形式是()。

A、if(x

B、if(x!

=y)scanf("%d",&x)elsescanf("%d",&y);

C、if(x>y&&x!

=y);

D、if(x==y)x+=y;

5执行下面程序段后,ch的值是().

charch='a';

ch=(ch>='a'&&ch<='z')?

(ch-32):

ch;

A、aB、AC、zD、Z

6语句while(!

E);中的表达式!

E等价于()。

A、E==1B、E!

=0C、E!

=1D、E==0

7针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是().

A、break语句可以一次性跳出多层嵌套循环

B、break语句只能跳出最内层循环

C、continue语句可以一次性跳出多层嵌套循环

D、continue语句可以跳出最内层循环

8程序main(){chars[10];s="abcd";printf("%s\n",s);}的运行结果(以下U代表空格)是().

A、输出abcdB、输出abcdUUUUUC、编译不通过D、输出a

9若chara[10];已正确定义,以下语句中不能从键盘上给a数组的

所有元素输入值的语句是()。

A、for(i=0;i<10;i++)a[i]=getchar();B、scanf("%s",a);

C、gets(a);D、a=getchar();

10C语言中函数调用的方式有()。

A、函数只可以作为语句调用。

B、函数只可以作为函数表达式调用

C、函数调用只可以作为语句或函数表达式调用。

D、函数调用可以作为语句调用,可以作为函数表达式调用,也可以作为函数参数调用。

11函数的形式参数系统默认存储类型说明是()。

A、staticB、externC、registerD、auto

12设有宏定义#defineSUB(x,y)(x)*y,且a=3,b=4,则SUB(a++,b++)的值为().

A、13B、16C、20D、12

13以下程序段执行后输出的结果是().

charstr[]="ABCD",*p=str;

printf("%d\n",*(p+4));

A、字符'D'的地址B、0C、不确定的值D、68

14使用共用体变量,不可以()。

A、同时访问所有成员B、进行动态管理

C、节省存储空间D、简化程序设计

15若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,

则文件方式字符串应是()。

A、"rb+"B、"ab++"C、"ab"D、"wb+"

二判断

1一个C程序只能由一个主函数组成。

2在C程序中,逗号运算符的优先级最低。

3C语言printf函数的格式控制串中可以设置需要的普通字符,输出时会原样输出。

4双精度型数据输入应该选用lf格式。

5若floatx=2.0,y=1.0;,则条件表达式x>y?

1:

1.5的值为1.

6逻辑表达式4>2&&1||5<3-!

0的值为1.

7逻辑表达式-5&&!

8的值为1.

8在do-while循环中,任何情况下都不能省略while.

9break语句不能终止正在进行的多层循环.

10在do-while循环中,根据情况可以省略while.

11若有语句:

chara[]="string";则a[6]的值为'\0';

12二维数组在内存中存贮时,是按行的顺序进行存储的。

13给数组赋初值时,初值的个数一定不小于所定义的元素的个数.

14当全局变量与局部变量同名时,在局部变量的作用域范围之内,全局变量起作用.

15当函数的类型与return语句后表达式的值的类型不一致时,函数返回值的类型由return语句后表达式值的类型决定.

16在C语言中,主函数可以调用其它函数,同时,其它函数也可以调用主函数.

17宏定义不是C语句,不必在行末加分号.

18若定义intarray[5],*p;则赋值语句p=&array;是正确的.

19在定义结构体变量时不允许对它赋初值.

20C语言中,在打开文件时,必须说明文件的使用方式,"w"用于文件的读写.

三填空

1已知x=3,y=2,则表达式x*=y+8的值为_____.

2C语言中的字符变量用保留字_____来说明.

3intx=2,y=3,z=4;则表达式x+y&&z的值为_____.

4表达式3&&0的值是_____.

5设i,j,k均为int型变量,则执行完下面的for循环后,k的值为_____.

for(i=0,j=10;i<=j;i++,j--)k=i+j;

6若有以下数组a,数组元素:

a[0]~a[9],其值为941282107513,

该数组的元素中,数值最大的元素的下标值是_____.

7执行以下程序段后,s的值是_____.

inta[]={5,3,7,2,1,5,3,10},s=0,k;

for(k=0;k<8;k+=2)

s+=*(a+k);

8函数调用时的实参和形参之间的数据是单向的_____传递.

四程序设计

1/*功能:

将字符串中的小写字母转换为对应的大写字母,

其它字符不变。

*/

#include"string.h"

#include"stdio.h"

voidchange(charstr[])

{

/*********Begin**********/

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

}

main()

{

voidchange();

charstr[40];

voidTestFunc();

gets(str);

change(str);

puts(str);

TestFunc();

}

voidTestFunc()

{

FILE*IN,*OUT;

chari[200];

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFileError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFileError");

}

fscanf(IN,"%s",i);

change(i);

fprintf(OUT,"%s\n",i);

fclose(IN);

fclose(OUT);

}

2/*功能:

根据整型形参m,计算如下公式的值:

y=sin(m)*10。

例如:

若m=9,则应输出:

4.121185*/

#include"stdio.h"

#include"math.h"

doublefun(intm)

{

/*********Begin**********/

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

}

main()

{

intn;

voidTestFunc();

printf("Entern:

");

scanf("%d",&n);

printf("\nTheresultis%1f\n",fun(n));

TestFunc();

}

voidTestFunc()

{

FILE*IN,*OUT;

inti;

intt;

doubleo;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFileError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFileError");

}

for(i=0;i<5;i++)

{

fscanf(IN,"%d",&t);

o=fun(t);

fprintf(OUT,"%lf\n",o);

}

fclose(IN);

fclose(OUT);

}

五程序改错

/*功能:

给一个不多于5位的正整数,要求:

一、求它是几位数,

二、逆序打印出各位数字。

*/

#include"stdio.h"

main()

{

/**********ERROR**********/

longa,b,c,d,e,x,

scanf("%ld",&x);

a=x/10000;

/**********ERROR**********/

b=x/10000/1000;

c=x%1000/100;

d=x%100/10;

e=x%10;

/**********ERROR**********/

if(a==0)

printf("thereare5,%ld%ld%ld%ld%ld\n",e,d,c,b,a);

elseif(b!

=0)

printf("thereare4,%ld%ld%ld%ld\n",e,d,c,b);

elseif(c!

=0)

printf("thereare3,%ld%ld%ld\n",e,d,c);

elseif(d!

=0)

printf("thereare2,%ld%ld\n",e,d);

elseif(e!

=0)

printf("thereare1,%ld\n",e);

}

2/*功能:

读取7个整数(其值范围是1-50),每读取一个值,程序打印

出该值个数的*。

*/

#include"stdio.h"

main()

{

inti,a,n=1;

/**********ERROR**********/

while(n<7)

{

do

{

scanf("%d",&a);

}

/**********ERROR**********/

while(a<1&&a>50);

/**********ERROR**********/

for(i=0;i<=a;i++)

printf("*");

printf("\n");

n++;

}

}

for(i=0;i

六程序填空

1/*功能:

计算矩阵a的上三角(包含主对角线)元素之积,矩阵的

行、列数和元素值均由键盘输入。

*/

#defineM8

#include"stdio.h"

intmain()

{

inti,j,n,a[M][M];

longs=1;

scanf("%d",&n);

for(i=0;i

/***********FILL***********/

for(________)

scanf("%d",&a[i][j]);

for(i=0;i

/***********FILL***********/

for(_______;j

/***********FILL***********/

s=s*_______;

printf("%ld\n",s);

return0;

}

2、/*功能:

求矩阵numM*N中正数、负数和0的个数。

*/

#include

#defineM20

#defineN15

intmain()

{

inti,j,m,n,z,num[M][N];

/***********FILL***********/

m=n=________;

for(i=0;i

for(j=0;j

{

scanf("%d",&num[i][j]);

if(num[i][j]>0)m++;

/***********FILL***********/

________(num[i][j]<0)n++;

elsez++;

}

printf("m=%d,n=%d,z=%d\n",m,n,z);

return0;

}

C语言第六套模拟题

一单项选择

1下述正确的C语言常量是:

().

A、E2B、5.0EC、3e-3D、1.5E2.5

2以下标识符中,不能作为合法的C用户定义标识符的是()。

A、INTB、_123C、_doubleD、float

3putchar函数可以向终端输出一个()。

A、字符或字符型变量值B、字符串

C、整型变量表达式值D、实型变量值

4inta=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为()。

A、1B、3C、2D、不一定

5若x=2,y=3则x||y的结果是()。

A、3B、0C、1D、2

6从键盘输入的整数中找出最小值min,输入0时结束.请在A处填写正确语句()。

#include"stdio.h"

main()

{intmin=0,a;

do{

scanf("%d",&a);

if(min>a)min=a;

}while(___A___);

printf("%d",min);

}

A、a=0B、a==0C、a>0&&a<0D、a!

=0

7以下描述中正确的是()。

A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B、do-while循环中,根据情况可以省略while

C、在do-while循环体中,必须有能使循环退出的操作。

D、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

8若有说明:

inta[][4]={0,0};则下面不正确的叙述是()。

A、有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

B、数组a的每个元素都可得到初值0

C、二维数组a的第一维大小为1

D、因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1

9以下定义语句中,错误的是()。

A、intn=5,a[n];B、inta[]={1,2};

C、chars[10]="test";D、chara[3]={'1','2','3'};

10以下正确的函数声明是()。

A、doublefun(intx,inty);B、doublefun(intx,y);

C、doublefun(intx;inty)D、doublefun(intx,inty)

11以下叙述不正确的是().

A、全局变量可以由系统自动初始化

B、在程序运行期间,全局变量所占存储单元的值永久保留

C、当局部变量与全局变量重名时,全局变量起作用

D、全局变量存放在静态存储区

12在"文件包含"的预处理中,被包含的文件应是().

A、文本文件B、可执行文件C、目标文件D、二进制文件

13若有以下定义和语句:

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

不能表示a数组元素的表达式是()。

A、*pB、a[10]C、*p++D、a[p-a]

14定义结构体的关键字是()。

A、structB、typedefC、enumD、union

15下列关于C语言数据文件的叙述中正确的是()。

A、文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

B、文件由ASCII码字符序列组成,C语言只能读写文本文件

C、文件由二进制数据序列组成,C语言只能读写二进制文件

D、文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

二判断

1一个C程序的执行是从本程序文件的第一个函数开始,到本程序main函数结束。

2若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变

3当数值型和字符型数据混合输入时,数值和字符数据之间不需要空格。

4C语言printf函数的格式控制串中可以设置需要的普通字符,输出时会原样输出。

5语句if(a>b)printf("%d",a);elseprintf("%d",b);可以用语句printf("%d",a>b?

a:

b);取代.

6运算符的级别由高向低依次为!

->算术运算符->关系运算符->逻辑运算符->赋值运算符.

7C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式.

8continue语句对于while和do-while循环来说,意味着转去计算While表达式.

9do-while的循环体不能是复合语句.

10for循环的三个表达式中间用分号相分隔,并且不能省略.

11对于字符数为n个的字符串,其占用的内存为n+1个字节空间.

12对任何一个二维数组的元素,都可以用数组名和两个下标唯一地加以确定.

13定义一维数组的形式为:

类型说明 数组名[表达式],其中表达式可以是正整型常量表达式、字符常量表达式.

14没有初始化的整型静态局部变量的初值系统均默认为0.

15某些情况下,在主函数中可以缺省对被调用函数的说明.

16C语言所有函数都是外部函数.

17文件包含可以嵌套。

18定义inta[]={1,2,3,4},y,*p=&a[1];,则执行y=(*--p)++后,y的值是2.

19共用体变量使用过程中,可在同一内存段中存放几种不同类型的成员.

20C语言中,在打开文件时,必须说明文件的使用方式,"w+"用于打开一个二进制文件.

三填空

1在微机中,字符的比较就是对它们的_____进行比较。

2若charw,intx,floaty,doublez; 则表达式w*x+z-y的结果为_____类型.

3已知a=10,b=15,c=1,d=2,e=0,则表达式a+b>10||a+b<0的值为_____.

4intx=2,y=3,z=4;则表达式x||y+z的值为_____.

5以下do-while语句中循环体的执行次数是_____.

a=10;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

6若有定义:

chars[]="china";则C编译系统为数组s开辟_____个字节的内存单元.

7若有数组定义:

inta[10];该数组中下标最小的元素名字是_____.

8局部静态变量是在静态存储区分配存储单元的,在整个程序运行期间始终占_____的.

四程序设计

1/*功能:

不用递归方式,编写函数fun,求任一整数m的n次方。

*/

#include"stdio.h"

main()

{

intm,n;

longs;

longfun(int,int);

voidTestFunc();

printf("输入m和n的值:

");

scanf("%d%d",&m,&n);

s=fun(m,n);

printf("s=%ld\n",s);

TestFunc();

}

longfun(intm,intn)

{

/*********Begin**********/

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

}

voidTestFunc()

{

FILE*IN,*OUT;

intn;

inti[2];

longo;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFileError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFileError");

}

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);

}

2/*功能:

编写函数实现两个数据的交换,在主函数中输入任

意三个数据,调用函数对这三个数据从大到小排序。

*/

#include"stdio.h"

voidswap(int*a,int*b)

{

/*********Begin**********/

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

}

main()

{

intx,y,z;

voidTestFunc();

scanf("%d%d%d",&x,&y,&z);

if(x

if(x

if(y

printf("%3d%3d%3d",x,y,z);

TestFunc();

}

voidTestFunc()

{

FILE*IN,*OUT;

intm,n;

inti[2];

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFileError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFileError");

}

for(n=0;n<3;n++)

{

for(m=0;m<2;m++)

{

fscanf(IN,"%d",&i[m]);

}

swap(&i[0],&i[1]);

fprintf(OUT,"%d\n",i[0]);

fprintf(OUT,"%d\n",i[1]);

}

fclose(IN);

fclose(OUT);

}

五程序改错

1/*功能:

在fun函数中求出以下分数序列的前n项之和。

和值通过函数值返回到main

函数。

2/1+3/2+5/3+8/5+13/8+21/13……

例如:

若n=5,则应输出:

8.391667。

*/

#include"conio.h"

#inclu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1