大连理工大学c语言模拟考2.docx
- 文档编号:11977517
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:20
- 大小:19.14KB
大连理工大学c语言模拟考2.docx
《大连理工大学c语言模拟考2.docx》由会员分享,可在线阅读,更多相关《大连理工大学c语言模拟考2.docx(20页珍藏版)》请在冰豆网上搜索。
大连理工大学c语言模拟考2
下述正确的C语言常量是:
().
A、E2
B、5.0E
C、3e-3
D、1.5E2.5
C
若有定义:
inta=7;floatx=2.5,y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值是()。
A、0.000000
B、2.750000
C、3.500000
D、2.500000
D
根据下面的程序,使i=123,c1='A',c2='B'哪一种是正确的键盘输入方法().
(规定用[CR]表示回车,U表示空格)
main()
{
inti;
charc1,c2;
scanf("%d%c%c",&i,&c1,&c2);
}
A、123AUB[CR]
B、123UAUB[CR]
C、123AB[CR]
D、123[CR]AB[CR]
C
下列程序段的输出结果为()。
inta=7,b=9,t;t=a*=a>b?
a:
b;printf("%d",t);
A、49
B、63
C、7
D、9
B
inta=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为()。
A、1
B、3
C、2
D、不一定
C
t为int类型,进人下面的循环之前,t的值为0
while(t=1)
{……}
则以下叙述中正确的是()。
A、循环控制表达式的值为0
B、循环控制表达式不合法
C、循环控制表达式的值为1
D、以上说法都不对
C
针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是().
A、break语句可以一次性跳出多层嵌套循环
B、break语句只能跳出最内层循环
C、continue语句可以一次性跳出多层嵌套循环
D、continue语句可以跳出最内层循环
B
以下不正确的定义语句是()。
A、doublex[5]={2.0,4.0,6.0,8.0,10.0};
B、charc1[]={'1','2','3','4','5'};
C、inty[5]={0,1,3,5,7,9};
D、charc2[]={'\x10','\xa','\x8'};
C
以下正确的说法是().
A、函数的类型决定返回值的类型
B、定义函数时,形参的类型说明可以放在函数体内
C、return后面不能为表达式
D、如果形参与实参的类型不一致,以实参类型为准
A
C语言规定,函数返回值的类型是由()。
A、在定义该函数时所指定的函数类型所决定
B、return语句中的表达式类型所决定
C、调用该函数时系统临时决定
D、调用该函数时的主调函数类型所决定
A
函数fun用于将一字符串按相反次序显示,则横线上的表达式为().
voidfun(char*s)
{if(!
*s)
return;
_____;
printf("%c",*s);
}
A、printf("%s",s+1);
B、fun(*(s+1));
C、printf("%s",s+strlen(s)-1);
D、fun(s+1);
D
在宏定义#definePI3.14159中,用宏名替换一个().
A、字符序列
B、函数名
C、单精度数
D、双精度数
A
若有说明:
int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是()。
A、p1=&m;p2=p1;
B、p1=&m;p2=&p1
C、p1=&m;*p2=*p1;
D、p1=&m;p2=&n;*p1=*p2;
A
下列程序的运行结果是:
().
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;
}
main()
{inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
A、63
B、36
C、00
D、编译出错
B
C语言结构体类型变量在程序执行期间()。
A、没有成员驻留在内存中
B、所有成员一直驻留在内存中
C、只有一个成员驻留在内存中
D、部分成员驻留在内存中
B
表达式(j=3,j++)的值是4.
N
若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。
Y
C语言的输入功能是由系统提供的输入函数实现的.
Y
charc[6]="abcde";printf("%3s",c)表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数.
N
条件表达式x?
'a':
'b'中,若x=0时,表达式的值为'a'.
N
设x=1,y=2,z=3,则逻辑表达式x-y>z&&y!
=z的值为0.
Y
已知a=3,b=4,c=5.则逻辑表达式a+b>c&&b==c值为0.
Y
若有说明intc;则while(c=getchar());没有语法错误
Y
do-while循环由do开始,while结束,循环体可能一次也不做。
N
for循环语句只能用于循环次数确定的情况下.
N
若有定义inta[10];则for(i=0;i<=10;i++)a[i]=i;编译时无语法错误.
Y
定义intx[5],n;则x=x+n;或x++;都是正确的.
N
二维数组在内存中存贮时,是按列的顺序连续存贮各元素的值.
N
变量根据其作用域的范围可以分作局部变量和全局变量.
Y
通过return语句,函数可以带回一个或一个以上的返回值。
N
函数的返回值可以通过函数中的return语句获得。
Y
若有宏定义:
#defineS(a,b)t=a;a=b;b=t由于变量t没定义,
所以此宏定义是错误的。
N
定义inta[]={1,2,3,4},y,*p=&a[1];,则执行y=(*--p)++后,y的值是2.
N
一个共用体变量中可以同时存放其所有成员.
N
用fopen("file","r+");打开的文件"file"可以进行修改。
Y
若有定义:
charc='\010';则变量C中包含的字符个数为_____.
【参考答案】
1
getchar()函数只能接收一个_____.
【参考答案】
字符
执行下列语句后,b的十进制值是_____.
intx=240,y=15,b;
charz='A';
b=((x&&y)&&(z<'a'));
【参考答案】
1
设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是_____.
for(x=0,y=0;y!
=123&&x<3;x++)
scanf("%d",&y);
【参考答案】
3
C语言中,数组名是一个不可变的_____常量,不能对它进行加减和赋值运算.
【参考答案】
指针
地址
函数调用语句func((e1,e2),(e3,e4,e5))中含有_____个实参.
【参考答案】
2
定义int*p,a[5];将数组a的首地址赋给指针变量p的语句是_____.
【参考答案】
p=a
p=&a[0]
p=a;
p=&a[0];
结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体_____,再说明结构体变量.
【参考答案】
类型
/*--------------------------------------------------------------
【程序设计】
----------------------------------------------------------------
功能:
编写函数sum(intm,intn),求出m~n之间(包括m和n,m 被3和5整除的数的和,并将这些数的和作为返回值。 ---------------------------------------------------------------*/ #include"stdio.h" intsum(intm,intn) { /*********Begin**********/ /**********End**********/ } main() { voidTestFunc(); intm=15,n=300; printf("sum=%d\n",sum(m,n)); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; inti,m,n; IN=fopen("in.dat","r"); if(IN==NULL) { printf("OpenFileError"); return; } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(i=0;i<5;i++) {fscanf(IN,"%d%d",&m,&n); fprintf(OUT,"%d\n",sum(m,n)); } fclose(IN); fclose(OUT); } 【参考代码】 inti,s=0; for(i=m;i<=n;i++) if(i%3==0&&i%5==0) s=s+i; returns; =============== /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 求5行5列矩阵的主、副对角线上元素之和。 注意, 两条对角线相交的元素只加一次。 例如: 主函数中给出的矩阵的两条对角线的和为45。 ------------------------------------------------*/ #include"stdio.h" #defineM5 intfun(inta[M][M]) { /*********Begin**********/ /**********End**********/ } voidTestFunc() { FILE*IN,*OUT; intiIN[M][M],iOUT; inti,j; IN=fopen("in.dat","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("PleaseVerifyTheCurrentDir..ItMayBeChanged"); } {for(i=0;i for(j=0;j fscanf(IN,"%d",&iIN[i][j]); iOUT=fun(iIN); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); } main() { inta[M][M]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8},{1,3,4,5,6}}; inty; y=fun(a); printf("s=%d\n",y); TestFunc(); } 【参考代码】 ints=0; inti; for(i=0;i s=s+a[i][i]+a[i][M-1-i]; s=s-a[(M-1)/2][(M-1)/2]; returns; =============== /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 输出Fabonacci数列的前20项,要求变量类型定义成浮点型, 输出时只输出整数部分,输出项数不得多于或少于20。 ------------------------------------------------------*/ #include"stdio.h" voidfun() { inti; floatf1=1,f2=1,f3; /**********ERROR**********/ printf("%8d",f1); /**********ERROR**********/ for(i=1;i<=20;i++) { f3=f1+f2; /**********ERROR**********/ f2=f1; /**********ERROR**********/ f3=f2; printf("%8.0f",f1); } printf("\n"); } main() { fun(); } 【改错1】错误 【学生答案】 printf("%8d",f1); 【参考答案】 printf("%8.0f",f1); printf("%f",f1); printf("%8f",f1); ============================================================ 【改错2】错误 【学生答案】 for(i=1;i<=20;i++) 【参考答案】 for(i=1;i<20;i++) for(i=1;20>i;i++) for(i=2;i<=20;i++) for(i=2;20>=i;i++) for(i=1;i<=19;i++) for(i=1;19>=i;i++) ============================================================ 【改错3】错误 【学生答案】 f2=f1; 【参考答案】 f1=f2; ============================================================ 【改错4】错误 【学生答案】 f3=f2; 【参考答案】 f2=f3; ============================================================ /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 求两数平方根之和,作为函数值返回。 例如: 输入12和20,输出结果是: y=7.936238。 ------------------------------------------------------*/ #include"stdio.h" #include"conio.h" #include"math.h" /**********ERROR**********/ doublefun(double*a,*b) { doublec; /**********ERROR**********/ c=sqr(a)+sqr(b); /**********ERROR**********/ returna; } main() { doublea,b,y; printf("Entera&b: ");scanf("%lf%lf",&a,&b); y=fun(&a,&b);printf("y=%f\n",y); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 求两数平方根之和,作为函数值返回。 例如: 输入12和20,输出结果是: y=7.936238。 ------------------------------------------------------*/ #include"stdio.h" #include"conio.h" #include"math.h" /**********ERROR**********/ doublefun(double*a,*b) { doublec; /**********ERROR**********/ c=sqr(a)+sqr(b); /**********ERROR**********/ returna; } main() { doublea,b,y; printf("Entera&b: ");scanf("%lf%lf",&a,&b); y=fun(&a,&b);printf("y=%f\n",y); } /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目: 求矩阵a的副对角线上元素之和。 -------------------------------------------------------*/ #include"stdio.h" main() { inta[3][3]={1,3,5,7,9,2,4,6,8},i,j,sum=0; for(i=0;i<3;i++) /***********FILL***********/ for(j=0;_____;j++) /***********FILL***********/ if(_____)sum=sum+a[i][j]; printf("%3d",sum); } 【空1】错误 【学生答案】 for(j=0;_____;j++) 【参考答案】 j<3 j<=2 ============================================================ 【空2】错误 【学生答案】 if(_____)sum=sum+a[i][j]; 【参考答案】 (i+j)==2 i+j==2 2==(i+j) 2==i+j ============================================================ /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目: 下面的程序利用字符串处理函数实现对字符串的处理。 -------------------------------------------------------*/ #include"stdio.h" /***********FILL***********/ _____ main() { chara[50]="abc",b[50]="ABC",*p1,*p2,str[50]="xyz"; p1=a;p2=b; strcpy(str+2,strcat(p1,p2)); /***********FILL***********/ printf(_____,str); } 【空1】错误 【学生答案】 _____ 【参考答案】 #include #include"string.h" ============================================================ 【空2】错误 【学生答案】 printf(_____,str); 【参考答案】 "%s\n" "%s" ============================================================
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大连理工大学 语言 模拟