C语言上机题库1.docx

上传人:b****5 文档编号:3434526 上传时间:2022-11-23 格式:DOCX 页数:26 大小:25.69KB
下载 相关 举报
C语言上机题库1.docx_第1页
第1页 / 共26页
C语言上机题库1.docx_第2页
第2页 / 共26页
C语言上机题库1.docx_第3页
第3页 / 共26页
C语言上机题库1.docx_第4页
第4页 / 共26页
C语言上机题库1.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C语言上机题库1.docx

《C语言上机题库1.docx》由会员分享,可在线阅读,更多相关《C语言上机题库1.docx(26页珍藏版)》请在冰豆网上搜索。

C语言上机题库1.docx

C语言上机题库1

一、选择题

1.下列变量说明语句中,正确的是()。

A、chara;b;c;

B、char:

abc;

C、intx;z;

D、intx,z;

2.设以下变量均为int类型,则值不等于7的表达式是()。

A、(x=6,x+1,y=6,x+y)

B、(x=y=6,x+y,y+1)

C、(y=6,y+1,x=y,x+1)

D、(x=y=6,x+y,x+1)

3.x,y,z,t均为整型变量,则执行以下语句后,t的值为:

()

x=y=z=1;

t=++x||++y&&++z;

A、0

B、1

C、2

D、不定值

4.如果inta=2,b=3,c=0,下列描述正确的是()。

A、a&&b>c的结果为假

B、!

a!

=(b!

=c)表达式的值为1

C、a||(b=c)执行后b的值为0

D、a>b!

=c和a>(b!

=c)的执行顺序是一样的

5.从键盘输入的整数中找出最小值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=0

B、a==0

C、a>0&&a<0

D、a!

=0

 

6.设有如下程序段:

intk=10;

while(k==0)

k--;

则下述说明中正确的是().

A、循环体一次也不执行

B、循环体执行一次

C、死循环

D、循环体执行10次

7.staticcharstr[10]="China";数组元素个数为()。

A、6

B、9

C、5

D、10

8.函数调用:

strcat(strcpy(str1,str2),str3)的功能是()。

A、将串str1复制到串str2中后再连接到串str3之后

B、将串str2连接到串str1之后再将串str1复制到串str3中

C、将串str1连接到串str2之后再复制到串str3之后

D、将串str2复制到串str1中后再将串str3连接到串str1之后

9.C语言程序中必须有的函数是()。

A、#include"stdio.h"

B、main

C、printf

D、scanf

10.程序运行结束后,屏幕上输出值为().

staticintx=10;

main()

{intx=3;

f();

x--;

printf("%d",x);

}

f()

{x++;

}

A、10

B、2

C、11

D、3

 

11.file1.c中有命令,#include,若file2.c中有全局静态变量a,则().

A、a在file1.c中应用extern说明.

B、a在file1.c中有效,不必用extern说明.

C、a在file1.c中不生效

D、a在file1.c和file2.c中均不生效.

12.若有说明:

intn=2,*p=&n,*q=p;,则以下非法的赋值语句是()。

A、*p=*q;

B、n=*q;

C、p=n;

D、p=q;

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

main()

{charstr[]="ABCD",*p=str;printf("%d\n",*(p+3));}

A、68

B、不确定的值

C、字符D的地址

D、0

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

A、同时访问所有成员

B、进行动态管理

C、节省存储空间

D、简化程序设计

15.以下字符中不是转义字符的是()。

A、'\c'

B、'\b'

C、'\\'

D、'\a'

16.设a=12,且a定义为整型变量。

执行语句a+=a-=a*=a;后a的值为()。

A、0

B、144

C、132

D、12

17.已定义floatx=1.25,y=3.37;

根据下面的输出结果,正确的输出语句是().

y+x=4.62,y-x=2.12

A、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);

B、printf("y+x=%f,y-x=%f\n",y+x,y-x);

C、printf("y+x=%.2f,y-x=%.2f\n",y+x,y-x);

D、printf("y+x=%5.2f,y=%5.2f\n",y+x,y-x);

 

18.执行下面程序段后,b的值为().

ints=35;

chart='A';

intb;

b=((s&&4)&&(t<'a'));

A、1

B、3

C、2

D、0

19.若k是整型,则以下程序段的执行结果是:

()

k=-3;

if(k<=0)printf("####")

elseprintf("&&&&");

A、####

B、有语法错误,无结果

C、&&&&

D、####&&&&

20.设j和k都是int类型,则下面的for循环语句()。

for(j=0,k=0;j<=9&&k!

=876;j++)scanf("%d",&k);

A、最多执行9次

B、是无限循环

C、循环体一次也不执行

D、最多执行10次

21.以下正确的描述是().

A、只能在循环体内和switch语句内使用break语句

B、continue语句的作用是终止整个循环的执行

C、从多层嵌套的外层循环中退出时,只能使用goto语句

D、在循环体内使用break和continue语句的作用相同

22.以下能对一维数组a进行正确初始化的语句是()。

A、inta[10]={};

B、inta[]={0};

C、inta[10]={10*1};

D、inta[10]=(0,0,0,0,0)

23.以下正确的说法是().

A、函数的类型决定返回值的类型

B、定义函数时,形参的类型说明可以放在函数体内

C、return后面不能为表达式

D、如果形参与实参的类型不一致,以实参类型为准

 

24.以下程序的输出结果为()。

intfunc(intx,inty)

{

return(x+y);}

main()

{

inta=1,b=2,c=3,d=4,e=5;

printf("%d\n",func((a+b,b+c,c+a),(d+e)));

}

A、9

B、15

C、13

D、函数调用出错

25.以下正确的说法是()。

A、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调

B、用户若需调用标准库函数,调用前必须重新定义

C、系统根本不允许用户重新定义标准库函数

D、用户可以重新定义标准库函数,若如此,该函数将失去原有含义

26.在#include命令中,文件名可用双引号或尖括号括起来,对于二者的下列说法中正确的是().

A、用尖括号时,直接按系统标准方式检索文件目录.

B、用双引号时,直接按系统标准方式检索文件目录.

C、用双括号和尖括号时,都不检查源文件所在的文件目录.

D、以上说法都不对.

27.当说明一个结构体变量时系统分配给它的内存是()。

A、成员中占内存量最大者所需的容量

B、结构中第一个成员所需内存量

C、结构中最后一个成员所需内存量

D、各成员所需内存量的总和

28.以下程序段给数组所有的元素输入数据,请选择正确答案填入()。

#include

main()

{inta[10],i=0;

while(i<10)scanf("%d",(_______));

.

.

.

}

A、&a[i+1]

B、a+i

C、a+(i++)

D、&a[++i]

29.在定义构造数据类型时,不能()。

A、末尾不写分号

B、说明存储类型

C、初始化

D、说明变量

30.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。

A、x+n=I;

B、x==5;

C、x=n/2.5;

D、5=x=4+1;

31.下述错误的C语言常量是:

().

A、0xf

B、5.

C、090

D、.25

32.根据下面的程序,使a=123,c1='o',c2='k'哪一种是正确的键盘输入方法?

()。

(规定用字符串[CR]表示回车,U表示空格)

main()

{inta;

charc1,c2;

scanf("%d%c%c",&a,&c1,&c2);

}

A、123UoUk[CR]

B、123ok[CR]

C、123Uok[CR]

D、123oUk[CR]

33.已知键入a=4,b=3,执行下面程序输出的结果是().

main()

{inta,b,s;

scanf("%d%d",&a,&b);

s=a;

if(a>b)s=b;

s=s*s;

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

}

A、13

B、9

C、16

D、15

 

34.执行下面程序段后,i的值是().

inti=10;

switch(i)

{case9:

i+=1;

case10:

i--;

case11:

i*=3;

case12:

++i;

}

A、28

B、10

C、9

D、27

35.以下不是无限循环的语句为()。

A、while

(1){x++;}

B、for(;;x++=i);

C、for(i=10;;i--)sum+=i;

D、for(y=0,x=1;x>++y;x=i++)i=x;

36.下面程序段运行的结果是().

x=-1;

do{

x=x*x;

}while(!

x);

A、循环执行一次

B、有语法错误

C、死循环

D、循环执行两次

37.若有说明:

inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。

A、3

B、无确定值

C、4

D、2

38.若定义inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;

则数值为4的表达式是().

A、a[4]

B、a[g-c]

C、a['d'-'c']

D、a['d'-c]

39.以下叙述中正确的是()。

A、可以在一个函数中定义另一个函数

B、main()函数必须放在其它函数之前

C、构成C程序的基本单位是函数

D、所有被调用的函数一定要在调用之前进行定义

40.下述函数的功能是().

intfun(char*x)

{char*y=x;

while(*y++);

returny-x-1;

}

A、比较两个字符串的大小

B、求字符串存放位置

C、求字符串的长度

D、将字符串x连接到字符串y后面

41.在执行"文件包含"命令时,下列说法正确的是().

A、作为一个源程序编译,得到一个目标文件.

B、一个include命令可指定多个被包含文件.

C、在编译时作为两个文件联结.

D、被包含的文件可以是源文件或目标文件.

42.在说明语句:

int*f();中,标识符f代表的是()。

A、一个返回值为指针型的函数名

B、一个用于指向函数的指针变量

C、一个用于指向一维数组的行指针

D、一个用于指向整型数据的指针变量

43.下面程序的输出结果应该是().

chars[]="ABCD";

main()

{char*p;

for(p=s;p

printf("%s",p);

}

A、DCBA

B、ABCDBCDCDD

C、ABCDABCABA

D、ABCD

44.设有如下定义:

structsk{inta;floatb;}data,*p;

若要使p指向data中的a域,正确的赋值语句是()。

A、p=(structsk*)data.a;

B、*p=data.a;

C、p=&data.a;

D、p=&data,a;

 

二、填空题

1.若有定义:

inta=10,b=9,c=8;接着顺序执行下列语句后,变量c中的值是____.

c=(a-=(b-5));c=(a%11)+(b=3);

2.getchar()函数只能接收一个__.

3.当a=1,b=2,c=3时,执行以下程序段后b=___.if(a>c)b=a;a=c;c=b;

4.若输入字符串:

abcde<回车>,则以下while循环体将执行_0__次.while((ch=getchar())=='e')printf("*");

5.字符串的结束标志是__.

6.如果函数不要求返回值,可用____来定义函数为空类型.

7.将函数funl的入口地址赋给指针变量p的语句是__.

8.设有以下共用体类型说明和变量定义,则变量d在内存所占字节数是____。

unionstud{shortintnum;charname[8];floatscore[3];doubleave;}d,stu[3];

9.设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:

a*=16+(b++)-(++c);后,a的值是__.

10.若所用变量都已正确定义,请填写以下程序段的输出结果___.

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

printf("OK");

11.c语言表达式!

(4>=6)&&(3<=7)的值是____.

12.设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是_____.

for(x=0,y=0;y!

=123&&x<3;x++)

scanf("%d",&y);

13.按内存排列顺序,数组chara[2]中的所有元素是a[0]和_____.

14.函数不可以进行嵌套定义,但可以进行嵌套_____.

15.将数组a的首地址赋给指针变量p的语句是_____.

16.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是___。

structstud{charnum[6];floats[4];doubleave;}a,*p;

17.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是_____.

18.设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!

(a+b)+c-1&&b+c/2后,t的值是__.

19.若有以下数组a,数组元素:

a[0]~a[9],其值为941282107513该数组的元素中,数值最小的元素的下标值是_____.

20.在c程序中,只能给指针变量赋NULL值和_____值.

21.以下程序的输出结果为_____,

#include"stdio.h"main(){inta=010,j=10;printf("%d,%d\n",++a,j--);}.

三、判断题

1.在C语言中,各种类型的整型数据在内存中都占2个字节。

2.表达式(j=3,j++)的值是4.

3.格式字符%e以指数形式输出实数数字部分小数位数7位.

4.charc[6]="abcde";printf("%3s",c)表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数.

5.设d=1,e=2,f=3,则逻辑表达式!

(d+e)+f&&e+f*2的值为0.

6.已知a=1,b=2,c=3,d=4,则条件表达式a>b?

a:

(c>d?

c:

d)的值为4.

7.已知a=3,b=4,c=5.则逻辑表达式a+b>c&&b==c值为0.

8.do-while循环由do开始,while结束,循环体可能一次也不做。

9.对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式2.

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

11.对静态变量的初始化不是在编译阶段完成的.

12.定义intx[5],n;则x=x+n;或x++;都是正确的.

13.语句charch[12]={"CProgram"};与语句charch[]="CProgram";具有不同的赋初值功能.

14.数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值.

15.变量根据其作用域的范围可以分作局部变量和全局变量.

16.当变量的存储类型定义缺省时,系统默认为变量的存储类型为auto类型,分配在静态区.

17.若有宏定义:

#defineS(a,b)t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。

18.设有如下定义:

int*p;*p=100;则printf("%d",p);的输出结果是100.

19.使几个不同的变量共占同一段内存的结构,称为"结构体"类型.

20.在打开文件时,必须说明文件的使用方式,"wb+"表示以读/写方式打开一个二进制文件.

21.在C程序中,%作为运算符时,是只能用于整数运算。

22.若有inti=10,j=2;则执行完i*=j+8;后ⅰ的值为28。

23.格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.

24.charc[6]="abcde";printf("%3s",c)表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数.

25.设x=1,y=2,z=3,则逻辑表达式x-y>z&&y!

=z的值为0.

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

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

27.已知a=3,b=4,c=5,则逻辑表达式!

(a>b)&&!

c||1的值为1.

28.for循环语句只能用于循环次数确定的情况下.

29.break语句能够终止当前进行的多层循环.

30.for循环的三个表达式都可以省略.

31.下列程序段是否正确:

inta[10];

....

a++;

32.定义一维数组的形式为:

类型说明数组名[表达式],其中表达式必须是整型常量.

33.字符串"Dalian"在内存中的存储长度是7.

34.数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值.

35.字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.

36.静态局部变量是在编译时被初始化的,故它只被赋初值一次.

37.被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去.

38.假设有inta[10],*p;则p=&a[0]与p=a等价。

39.typedef可以定义生成新的数据类型.

40.用fopen("file","r+");打开的文件"file"可以进行修改。

41.若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。

42.整型变量在全部范围内可以用字符格式输出.

43.已知a=3,b=4,c=5,则逻辑表达式!

(a+b)+c-1&&b+c/2的值为0.

44.语句if(a>b)printf("%d",a);elseprintf("%d",b);可以用条件表达式a>b?

a:

b取代.

45.已知a=4,b=2,c=3,d=5,表达式a>b?

a:

c

c:

d的值为4.

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

47.for语句的循环体至少执行一次.

48.定义chars[9];gets(s);若输入的字符串是Turboc↙(↙代表按回车键操作)则输入给数组s中的字符个数是7.

49.对静态数组的初始化是在编译阶段完成的.(正确)

50.C语言中,通过函数调用只能获得一个返回值.(错误)

51.字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.

52.被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去.

53.char*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。

54.对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。

55.函数的返回值可以通过函数中的return语句获得。

四、程序设计

1.功能:

用do-while语句求1~100的累计和。

------------------------------------------------*/

#include"stdio.h"

longintfun(intn)

{

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

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

}

 

2.功能:

编写程序,实现矩阵(3行3列)的转置(即行列互换)

例如:

输入下面的矩阵:

100200300

400500600

700800900

程序输出:

100400700

200500800

300600900

#include"stdio.h"

voidfun(intarray[3][3])

{

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

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

}

 

3.功能:

把20个随机数存入一个数组,然后输出该数组中的

最小值。

其中确定最小值的下标的操作在fun函数中

实现,请给出该函数的定义。

------------------------------------------------*/

#include"stdio.h"

#include"stdlib.h"

#defineVSIZE20

intvector[VSIZE];

intfun(intlist[],intsize)

{

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

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

}

 

4.功能:

求k!

(k〈13),所求阶乘的值作为函数值返回。

(要求使用递归)

------------------------------------------------*/

#include"stdio.h"

#include"conio.h"

longfun(intk)

{

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

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

}

5.功能:

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

其它字符不变。

------------------------------------------------*/

#include"string.h"

#include"stdio.h"

voidchange(charstr[])

{

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

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

当前位置:首页 > 工程科技 > 机械仪表

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

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