C语言模拟试题第三套.docx
- 文档编号:9488121
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:29
- 大小:20.05KB
C语言模拟试题第三套.docx
《C语言模拟试题第三套.docx》由会员分享,可在线阅读,更多相关《C语言模拟试题第三套.docx(29页珍藏版)》请在冰豆网上搜索。
C语言模拟试题第三套
一、单项选择题
1.下列变量说明语句中,正确的是()。
A、chara;b;c;
B、char:
abc;
C、intx;z;
D、intx,z;
【参考答案】错误
D
【学生答案】
[未答此题]
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)
【参考答案】错误
A
【学生答案】
[未答此题]
3.设:
longw=65535,t=7654321;
根据下面的输出结果,正确的程序段是().
w=65535,t=7654321
end
A、printf("w=%5d,t=%7d\n",w,t);printf("%s","end');
B、printf("w=%5ld,t=%7ld",w,t);printf("%c","end");
C、printf("w=%5ld,t=%7ld\n",w,t);printf("%s","end");
D、printf("w=%5u,t=%7u\n",w,t);printf("end");
【参考答案】错误
C
【学生答案】
[未答此题]
4.设x,y,z,t均为整型变量,则执行以下语句后,t的值为:
()
x=y=z=1;
t=++x||++y&&++z;
A、0
B、1
C、2
D、不定值
【参考答案】错误
B
【学生答案】
[未答此题]
5.如果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)的执行顺序是一样的
【参考答案】错误
B
【学生答案】
[未答此题]
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=0
B、a==0
C、a>0&&a<0
D、a!
=0
【参考答案】错误
D
【学生答案】
[未答此题]
7.设有如下程序段:
intk=10;
while(k==0)
k--;
则下述说明中正确的是().
A、循环体一次也不执行
B、循环体执行一次
C、死循环
D、循环体执行10次
【参考答案】错误
A
【学生答案】
[未答此题]
8.staticcharstr[10]="China";数组元素个数为()。
A、6
B、9
C、5
D、10
【参考答案】错误
D
【学生答案】
[未答此题]
9.函数调用:
strcat(strcpy(str1,str2),str3)的功能是()。
A、将串str1复制到串str2中后再连接到串str3之后
B、将串str2连接到串str1之后再将串str1复制到串str3中
C、将串str1连接到串str2之后再复制到串str3之后
D、将串str2复制到串str1中后再将串str3连接到串str1之后
【参考答案】错误
D
【学生答案】
[未答此题]
10.C语言程序中必须有的函数是()。
A、#include"stdio.h"
B、main
C、printf
D、scanf
【参考答案】错误
B
【学生答案】
[未答此题]
11.程序运行结束后,屏幕上输出值为().
staticintx=10;
main()
{intx=3;
f();
x--;
printf("%d",x);
}
f()
{x++;
}
A、10
B、2
C、11
D、3
【参考答案】错误
B
【学生答案】
[未答此题]
12.file1.c中有命令,#include
A、a在file1.c中应用extern说明.
B、a在file1.c中有效,不必用extern说明.
C、a在file1.c中不生效
D、a在file1.c和file2.c中均不生效.
【参考答案】错误
B
【学生答案】
[未答此题]
13.若有说明:
intn=2,*p=&n,*q=p;,则以下非法的赋值语句是()。
A、*p=*q;
B、n=*q;
C、p=n;
D、p=q;
【参考答案】错误
C
【学生答案】
[未答此题]
14.以下程序的输出结果是().
main()
{charstr[]="ABCD",*p=str;printf("%d\n",*(p+3));}
A、68
B、不确定的值
C、字符D的地址
D、0
【参考答案】错误
A
【学生答案】
[未答此题]
15.使用共用体变量,不可以()。
A、同时访问所有成员
B、进行动态管理
C、节省存储空间
D、简化程序设计
【参考答案】错误
A
【学生答案】
[未答此题]
二、判断题
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+"表示以读/写方式打开一个二进制文件.
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
三、填空题
1.若有定义:
inta=10,b=9,c=8;接着顺序执行下列语句后,变量c中的值是_____.c=(a-=(b-5));c=(a%11)+(b=3);
【空1】错误
【学生答案】
[无]
【参考答案】
9
============================================================
2.getchar()函数只能接收一个_____.
【空1】错误
【学生答案】
[无]
【参考答案】
字符
============================================================
3.当a=1,b=2,c=3时,执行以下程序段后b=_____.if(a>c)b=a;a=c;c=b;
【空1】错误
【学生答案】
[无]
【参考答案】
2
============================================================
4.若输入字符串:
abcde<回车>,则以下while循环体将执行_____次.while((ch=getchar())=='e')printf("*");
【空1】错误
【学生答案】
[无]
【参考答案】
0
============================================================
5.字符串的结束标志是_____.
【空1】错误
【学生答案】
[无]
【参考答案】
\0
'\0'
0
============================================================
6.如果函数不要求返回值,可用_____来定义函数为空类型.
【空1】错误
【学生答案】
[无]
【参考答案】
void
============================================================
7.将函数funl的入口地址赋给指针变量p的语句是_____.
【空1】错误
【学生答案】
[无]
【参考答案】
p=funl;
============================================================
8.设有以下共用体类型说明和变量定义,则变量d在内存所占字节数是_____。
unionstud{shortintnum;charname[8];floatscore[3];doubleave;}d,stu[3];
【空1】错误
【学生答案】
[无]
【参考答案】
12
============================================================
四、程序设计
1./*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
用do-while语句求1~100的累计和。
------------------------------------------------*/
#include"stdio.h"
longintfun(intn)
{
/*********Begin**********/
/**********End**********/
}
main()
{
inti=100;
voidTestFunc();
printf("1~100的累加和为:
%ld\n",fun(i));
TestFunc();
}
voidTestFunc()
{
FILE*IN,*OUT;
inti;
intiIN;
longintiOUT;
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<5;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%ld\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
【参考代码】
inti=1,sum=0;
do
{sum=sum+i;
i++;
}while(i<=n);
returnsum;
===============
【考生代码】
2./*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写程序,实现矩阵(3行3列)的转置(即行列互换)
例如:
输入下面的矩阵:
100200300
400500600
700800900
程序输出:
100400700
200500800
300600900
------------------------------------------------*/
#include"stdio.h"
voidfun(intarray[3][3])
{
/*********Begin**********/
/**********End**********/
}
main()
{
inti,j;
voidNONO();
intarray[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
fun(array);
printf("Convertedarray:
\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
NONO();
}
voidNONO()
{
inti,j,array[3][3];
FILE*rf,*wf;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
fscanf(rf,"%d",&array[i][j]);
fun(array);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
fprintf(wf,"%7d",array[i][j]);
fprintf(wf,"\n");
}
fclose(rf);
fclose(wf);
}
【参考代码】
inti,j,t;
for(i=0;i<3;i++)
for(j=0;j
{t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;}
===============
【考生代码】
五、程序改错
1./*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
有1、2、3、4个数字,能组成多少个互不相同且无重复数
字的三位数?
都是多少?
------------------------------------------------------*/
#include"stdio.h"
main()
{
inti,j,k;
/**********ERROR**********/
printf("\n")
/**********ERROR**********/
for(i=1;i<=5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{
/**********ERROR**********/
if(i!
=k||i!
=j||j!
=k)
printf("%d,%d,%d\n",i,j,k);
}
}
【改错1】错误
【学生答案】
printf("\n")
【参考答案】
printf("\n");
============================================================
【改错2】错误
【学生答案】
for(i=1;i<=5;i++)
【参考答案】
for(i=1;i<5;i++)
for(i=1;i<=4;i++)
============================================================
【改错3】错误
【学生答案】
if(i!
=k||i!
=j||j!
=k)
【参考答案】
if(i!
=k&&i!
=j&&j!
=k)
if((i!
=k)&&(i!
=j)&&(j!
=k))
============================================================
2./*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
以下程序把两个数按由大到小的顺序输出来.
------------------------------------------------------*/
#include"stdio.h"
/***********ERROR***********/
voidswap(int*p1,*p2)
{
intp;
p=*p1;
*p1=*p2;
*p2=p;
}
main()
{
inta,b,*p,*q;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 模拟 试题 第三