C语言一.docx
- 文档编号:15491636
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:25
- 大小:20.81KB
C语言一.docx
《C语言一.docx》由会员分享,可在线阅读,更多相关《C语言一.docx(25页珍藏版)》请在冰点文库上搜索。
C语言一
一,选择
1.C语言源程序是由(A)构成的。
A、函数
B、文本
C、子程序
D、函数和过程
2,下列数据中,是合法常量的(C)。
A、0xt89
B、abc
C、123
D、0678
3,下列字符序列中,可以作为变量名的是(A)。
A、D56,r_1_2,name,_st_1
B、class,day,lotus_1,2day
C、#md,&12x,month,student_n!
D、S.b,sum,average,_above
4,两个字符串比较大小用(A)。
A、strcmp()
B、strcat()
C、strlen()
D、strcpy()
5,用scanf(“%f,%f”,&x,&y)输入数据时,下列输入方式中正确的是(A)。
A、123.6,456.7
B、23.6;456.7
C、123.6/456.7
D、123.6456.7
6,C语言中运算对象必须是整型数据的运算符是(D)。
A、!
B、&&
C、/
D、%
7,根据C语言的特点以下选项中不正确的选项是(B)。
A、语言简洁
B、用C编写的程序可移植性不好
C、数据类型丰富
D、运算符丰富
8,以下叙述正确的是(B)。
A、在C程序中,main函数必须位于程序的最前面。
B、C语言本身没有输入输出语句。
C、在对一个C程序进行编译的过程中,可以发现注释中的拼写错误。
D、C程序的每行中只能写一条语句。
9,一个C程序的执行是从(D)。
A、本程序的main函数开始,到本程序文件的最后一个函数结束。
B、本程序的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序文件的第一个函数开始,到本程序main函数结束。
D、本程序的main函数开始,到main函数结束。
10,设x=3,y=4,z=5,则((x+y)>z)&&(y==z)&&x||y+z的值为(B)
A,0
B、1
C、2
D、-1
11,已知函数定义如下:
ab(char*s1,char*s2)
{while(*s2++=*s1++);}函数ab的功能是(A)。
A、串复制
B、求串长
C、串反向
D、串比较
12,若已定义a为整型变量,则(B)是对指针变量p的正确定义和初始化。
A、int*p=a;
B、int*p=&a;
C、int&p=a;
D、intp=&a;
13,以下正确的描述是(B)。
A、函数的定义和函数的调用均不可以嵌套
B、函数的定义不可以嵌套,函数的调用可以嵌套
C、函数的定义和函数的调用均可以嵌套
D、函数的定义可以嵌套,函数的调用不可以嵌套
14,设inta;floatb;则执行(int)b后b的数据类型为(A)。
A、float
B、不确定
C、void
D、int
15,执行语句“x=(a=5,b=a++)”后,x,a,b的值依次为(D)。
A、6,6,5
B、6,5,5
C、6,5,6
D、5,6,5
16,C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是(B)。
A、地址传递
B、单向值传递
C、由用户指定传递方式
D、由实参传给形参,再由形参传回给实参
17,以下程序段的输出结果是(C)。
doublea=1234.56;
printf("%6.1f\n",a);
A、提示出错,无结果
B、1234.56
C、1234.6
D、1234.5
18,设inta=3,b=4,c=5;则a||b+c&&b-c值为(C)。
A、真
B、假
C、1
D、0
19若二维数组a有m列,则在a[i][j]前的元素个数为(C)。
A、j*m+i
B、i*m+j+1
C、i*m+j
D、i*m+j-1
20设x=0,y=4,z=5,则执行x&&++y&&z--后x,y,z的值分别为(A)。
A、0,4,5
B、0,5,5
C、0,5,4
D、0,4,4
21,设x=2.9,a=8,y=3.7,算术表达式x+a%3*(int)(x+y)%5/2的值是(C)。
A、4
B、4.2
C、3.9
D、3.75
22,设a=12,且a定义为整型变量。
执行语句a+=a-=a*=a;后a的值为(D)。
A、132
B、12
C、144
D、0
23,执行下列程序段后,n值为(D)。
intn=0,a=1;
switch(a){
case1:
n+=1;
case2:
n+=2;break;
default:
n+=3;
}
A、6
B、1
C、2
D、3
24,执行以下程序后,s值为(B)。
intn=1,s=0;
while(++n<10)
{if(!
(n%5))break;
s+=n;
}
A、1
B、9
C、25
D、以上均不是
25,下列程序段执行几次循环(B)。
intj=0;
while(!
(++j%3))break;
A、3
B、一次也不执行
C、6
26,假定所有变量均已正确定义,下列程序段运行后x的值是(A)。
a=b=c=0,x=35;
if(!
a)x--;
elseif(b);
if(c)x=3;
elsex=4;
A、4
B、35
C、3
D、34
27,下列各语句中,能够且仅输出整型变量a、b中最大值的是(D)。
A、if(a
B、printf(”%d\n”,b);if(a>b)printf(”%d\n”,a);
C、if(a>b)printf(”%d\n”,a);printf(”%d\n”,b);
D、if(a>b)printf(”%d\n”,a);elseprintf(”%d\n”,b);
28,以下程序循环几次(D)。
intx=-1;
do{x=x*x;}while(!
x);
A、死循环
B、有语法错误
C、2
D、1
29,假定所有变量均已正确定义,下列程序段运行后y的值是(C)。
inta=0,y=10;
if(a=0)y--;
elseif(a>0)y++;
elsey+=y;
A、9
B、0
C、20
D、11
30,执行下列程序段后,a值为(C)。
inta=15,b=-1;
if((a>b)?
a++:
b++)a%=5;
A、16
B、0
C、1
D、15
31,下列while循环,将执行几次(C)。
inti=4;
while(i--)printf(“%d”,i);
A、无限次
B、0
C、4
D、3
二,判断
如果想使一个数组中全部元素的值为0,可以写成
inta[10]={0*10};
错误
2,如果被调用函数的定义出现在主调函数之前,可以不必加以声明.
正确
3,若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。
正确
4,字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.
错误
5,变量根据其作用域的范围可以分作局部变量和全局变量.
正确
6,C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。
正确
7,如果函数值的类型和return语句中表达式的值不一致,则以则以函数类型为准。
正确
8,char*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。
错误
9.x*=y+8等价于x=x*(y+8)。
正确
10,C语言中"%"运算符的运算对象必须是整型.
正确
三,填空
下列程序的结果为:
___a__。
1,include
voidmain()
{intc1;
c1=97;
printf(“%c\n”,c1);
}
2,a=3,b=4,c=5,
(1)a+b>c&&b==c的值为:
_0____。
3,a=2,b=3,x=3.5,y=2.5,(float)(a+b)/2+(int)x%(int)y的值为__3.5__。
4,x=2.5,a=7,y=4.7,x+a%3*(int)(x+y)%2/4的值为:
__2.5__。
5,a=3,b=4,c=5,!
(a+b)+c-1&&b+c/2的值为:
__1___。
6,intx=10;n=5;则执行x-=n++后x的值是___5__。
7,有定义inta[10],*p=a;则指针P指向数组a的_首地址____。
8,语言中没有逻辑型数据,在给出逻辑运算结果时,以_0____代表“假”,但在判断一个量是否为真时,以非零代表“真”,以零代表“假”。
9,执行k=10;while(k==10)k=k-1;后,则while循环次数为__1___。
10,语言中用__非零数值___表示逻辑“真”值。
11,用printf()的头文件是__stdio.h__。
12,设变量x、y和t均为整型,以下语句借助中间变量t把x、y值进行交换,请填空:
t=x;___x=y;y=t;。
13,"在内存中占__2___字节。
14,inty,x=9;y=x--;则y的值为__9___。
15,个C源程序至少包含一个_main____函数。
16定义一个符号常量PRICE100的命令格式是_#defineRINCE100__。
17格式输入函数是_100____。
。
18语言中格式输出函数是__scanf___。
19,语言字符型常量的定界符是__printf___。
20(a=3*5,a*4),a+5的值是__20___。
。
21变量的指针,其含义是指该变量的__地址___。
22,语言中没有逻辑型数据,在给出逻辑运算结果时,以__1___代表“真”。
。
23,出下列程序的运行结果:
_25____。
#include
voidmain()
{
intcube(intx);
inty=5;
printf("%d",cube(y));
}
intcube(intx)
{intz;
z=x*x;
return(z);
}
24写出下列程序的运行结果:
_1357____。
#include
voidmain()
{
intcube(intx);
inty=5;
printf("%d",cube(y));
}
intcube(intx)
{intz;
z=x*x;
return(z);
}
25写出下列程序的运行结果:
_8____。
#include
voidmain()
{
intcube(intx);
inty=5;
printf("%d",cube(y));
}
intcube(intx)
{intz;
z=x*x;
return(z);
}
/*------------------------------------------------
【程序设计】
--------------------------------------------------
1,功能:
编写函数fun将一个数组中的值按逆序存放,并在
main()函数中输出。
程序中如果用到循环,必须使
用for循环。
例如:
原来存顺序为8,6,5,4,1。
要求改为:
1,4,5,6,8。
------------------------------------------------*/
#include"stdio.h"
#defineN5
voidTestFunc();
voidfun(intarr[],intn)
{
/**********Begin**********/
/**********End**********/
}
voidmain()
{
inta[N]={8,6,5,4,1},i;
for(i=0;i printf("%4d",a[i]); printf("\n"); fun(a,N); for(i=0;i printf("%4d",a[i]); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; intn; inti[10]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(n=0;n<10;n++) { fscanf(IN,"%d",&i[n]); } fun(i,10); for(n=0;n<10;n++) { fprintf(OUT,"%d\n",i[n]); } fclose(IN); fclose(OUT); } 【参考代码】 inti,t; for(i=0;i {t=arr[i]; arr[i]=arr[n-1-i]; arr[n-1-i]=t; } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 求1到100之间的偶数之积。 程序中如果用到循环, 必须使用for循环。 ------------------------------------------------*/ #include"stdio.h" voidTestFunc(); doublefun(intm) { /**********Begin**********/ /**********End**********/ } voidmain() { printf("ji=%f\n",fun(100)); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; intiIN,i; doubledOUT; IN=fopen("23.in","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged"); } OUT=fopen("23.out","w"); if(OUT==NULL) { printf("PleaseVerifyTheCurrentDir..ItMayBeChanged"); } for(i=0;i<10;i++) { fscanf(IN,"%d",&iIN); dOUT=fun(iIN); fprintf(OUT,"%f\n",dOUT); } fclose(IN); fclose(OUT); } 【参考代码】 doubley=1; inti; for(i=1;i<=m;i++) if(i%2==0)y*=i; returny; =============== /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 计算n门课程的平均值,计算结果作为函数值返回。 例如: 若有5门课程的成绩是: 92,76,69,58,88, 则函数的值为76.6。 程序中如果用到循环,必须使 用for循环。 ------------------------------------------------*/ #include"stdio.h" voidTestFunc(); floatfun(inta[],intn) { /**********Begin**********/ /**********End**********/ } voidmain() { inta[]={92,76,69,58,88}; printf("y=%f\n",fun(a,5)); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; intiIN[10],i,j; floatfOUT; IN=fopen("in.dat","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("PleaseVerifyTheCurrentDir..ItMayBeChanged"); } for(j=0;j<5;j++) { for(i=0;i<5;i++) fscanf(IN,"%d",&iIN[i]); fOUT=fun(iIN,5); fprintf(OUT,"%f\n",fOUT); } fclose(IN); fclose(OUT); } 【参考代码】 inti; floaty=0; for(i=0;i y+=a[i]; y=y/n; returny; =============== /*------------------------------------------------------ 【程序改错】: 只允许修改错误代码,其他代码不允许修改! -------------------------------------------------------- 功能: 先从键盘上输入一个3行3列矩阵的各个元素的值,然后输 出主对角线上的元素之和sum。 ------------------------------------------------------*/ #include"stdio.h" voidfun() { inta[3][3],sum; inti,j; /**********ERROR**********/ sum=1; for(i=0;i<3;i++) for(j=0;j<3;j++) /**********ERROR**********/ scnaf("%d",&a[i][j]); for(i=0;i<3;i++) /**********ERROR**********/ sum=sum+a[i][j]; /**********ERROR**********/ printf("sum=%f\n",sum); } voidmain() { fun(); } 【学生答案】 sum=1; 【参考答案】 sum=0; /*------------------------------------------------------ 【程序改错】: 只允许修改错误代码,其他代码不允许修改! -------------------------------------------------------- 功能: 求如下表达式: 111 S=1+--+---+......+------- 1+21+2+31+2+3+......+n ------------------------------------------------------*/ #include voidmain() { intn; floatfun(intn); printf("Pleaseinputanumber: "); /**********ERROR**********/ print("%d",n); printf("%10.6f\n",fun(n)); } /**********ERROR**********/ fun(intn) { inti,j,t; floats; s=0; for(i=1;i<=n;i++) { t=0; for(j=1;j<=i;j++) t=t+j; /**********ERROR**********/ s=s+1/t; } returns; } /【学生答案】 print("%d",n); 【参考答案】 scanf("%d",&n); /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 产生并输出杨辉三角的前七行。 1 11 121 1331 14641 15101051 1615201561 注: 填空时,请使用下标法引用数组元素 -------------------------------------------------------*/ #include voidmain() { inta[7][7]; inti,j,k; for(i=0;i<7;i++) { a[i][0]=1; a[i][i]=1; } for(i=2;i<7;i++) /**********FILL**********/ for(j=1;j<_____;j++) /**********FILL**********/ a[i][j]=_____; for(i=0;i<7;i++) { /**********FILL**********/ for(j=0;_____;j++) printf("%6d",a[i][j]);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言