莞工C语言 程序设计基础B卷.docx
- 文档编号:10497627
- 上传时间:2023-02-14
- 格式:DOCX
- 页数:13
- 大小:24.89KB
莞工C语言 程序设计基础B卷.docx
《莞工C语言 程序设计基础B卷.docx》由会员分享,可在线阅读,更多相关《莞工C语言 程序设计基础B卷.docx(13页珍藏版)》请在冰豆网上搜索。
莞工C语言程序设计基础B卷
姓名:
学号:
系别:
年级专业:
(密封线内不答题)
……………………………………………………密………………………………………………封………………………………………线……………………………………线………………………………………
东莞理工学院(本科)试卷(B卷)
2012--2013学年第一学期
《程序设计基础》试卷
开课单位:
计算机学院;考试形式:
闭卷;不允许携带任何书籍及电子设备入场
题序
一
二
三
四
五
总分
得分
评卷人
注意:
所有答案均写在答题卡上,做在试卷上无效!
一、单选题(共40分每题2分)
(1)能直接执行的程序是机器语言程序,在机器内部以形式表示。
A.条形码B.拼音码C.内码D.二进制码
(2)存储器每个单元都被赋予唯一的称为地址。
A.容量B.字节C.序号D.功能
(3)一个字长的二进制位数是:
位
A.2B.8C.16D.随计算机系统而不同的。
(4)已知:
intx;floaty;所用的scanf调用语句格式为:
scanf(“x=%d;y=%f”,&x,&y);
则为了将数据10和66.6分别赋给x和y,正确的输入应当是:
A.x=10;y=66.6<回车>B.x=10,y=66.6<回车>
C.10<回车>66.6<回车>D.x=10<回车>y=66.6<回车>
(5)以下变量均为int类型,则值不等于7的表达式是:
A)(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y)D.(y=6,y+1,x=y,x+1)
(6)下面程序的运行结果是:
main()
{intx=10,y=10;
printf(“%d%d\n”,x--,--y);}
A.109B.910C.1010D.99
(7)执行下面的程序段后,变量k中的值为:
intk=3,s[2];
s[0]=k;k=s[1]*10;
A.不定值B.33C.30D.10
(8)已知英文字母a的ASCII代码值是十六进制数61H,那么字母d的ASCII代码值是:
A.34HB.54HC.24HD.64H
(9)若有以下说明:
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc='a',d,g;
则数值为4的表达式是:
A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c]
(10)给出以下定义:
charx[]="abcdefg";
chary[]={'a','b','c','d','e','f','g'};
则正确的叙述为:
A.数组X和数组Y等价B.数组x和数组Y的长度相同
C.数组X的长度大于数组Y的长度D.数组X的长度小于数组Y的长度
(11)下列函数调用语句含有实参的个数为:
func((x1,x2),(x3,x4,x5));
A.1B.2C.4D.5
(12)若用数组名作函数参数,则传递的是:
A.数组的首地址B.数组中第一个元素得值
C.数组中全部元素的值D.数组元素的个数
(13)以下叙述中正确的是_____.
A.在程序的一行上可以出现多个有效的预处理命令行。
B.使用带参的宏时,参数的类型应与宏定义时的一致。
C.宏替换不占用运行时间,只占用编译时间。
D.在以下定义中CR是称为“宏名”的标识符
#defineCR045
(14)一个源文件中定义的外部变量的作用域:
A.本文件的全部范围。
B.本程序的全部范围。
C.本函数的全部范围。
D.从定义该变量的位置开始至本文件结束。
(15)C语言规定,调用一个函数,实参与形参间数据传递方式:
A)地址传递B.值传递C)双向传递D)由用户指定传递方式
(16)
姓名:
学号:
系别:
年级专业:
(密封线内不答题)
……………………………………………………密………………………………………………封………………………………………线……………………………………线………………………………………
若有说明:
inti,j=7,*p=&i;则与i=j;等价的语句是:
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
(17)下面程序段的运行结果是_________.
char*s="abcde";
s+=2;printf("%d",s);
A.cdeB.字符'c'C.字符'c'的地址D.无确定的输出结果
(18)设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确的执行的赋值语句是________.
A.c=*p1+*p2;B.p2=cC.p1=p2D.c=*p1*(*p2);
(19)若有说明语句
chara[]="Itismine";
char*p="Itismine";
则以下不正确的叙述是________.
A.a+1表示的是字符t的地址
B.p指向另外的字符串时,字符串的长度不受限制
C.p变量中存放的地址值可以改变
D.a中只能存放10个字符
(20)设有如下定义:
structsk
{intn;
floatx;
}data,*p;
若要使p指向data中的n域,正确的赋值语句是_______.
A.p=&data.n;B.*p=data.n;
C.p=(structsk*)&data.n;D.p=(structsk*)data.n;
二、程序阅读(输出中换行符用↙表示,空格用︺表示,共25分,每题5分)
(1) 改正下列程序中不正确的语句。
main( )
{ int c;
scanf(“%d”, c); if (c=1) printf(“One\n”) ;
}
(2)阅读下列程序:
fun(int a, int b)
{ if(a>b) return (a);
else return (b);
}
main()
{ int x=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf(“%d\n”,r);
}
写出程序输出结果。
(3)以下程序的运行结果是________.
#include
structn{
intx;
charc;};
func(structnb)
{b.x=20;
b.c='y';}
main()
{structna={10,'x'};
func(a);
printf("%d,%c",a.x,a.c);}
姓名:
学号:
系别:
年级专业:
(密封线内不答题)
……………………………………………………密………………………………………………封………………………………………线……………………………………线………………………………………
(4)阅读下列程序:
#include “stdio.h”
main()
{ int k[]={6,7,3,-4,9};
int m,n,*p;
p=&k[0];
m=*(p+1);
n=*(p+4);
printf(“%d %d %d ”,*p,m,n);
}
写出程序输出结果。
(5)阅读下列程序:
main( )
{ int j , k , p, s;
s=0 ;
for (j=1; j<=3; j++)
{ p=1;
for(k=1; k<=j; k++)
p=p*k;
s=s+p;
}
printf(“s=%d\n”,s); }
写出程序输出结果。
三、程序填空(共15分每空1分)
(1)有3个整数a、b、c,由键盘输入,输出其中最大的数。
请填空
#include
main()
{
inta,b,c;
printf("Pleaseinputthreeingeter,a,b,c:
");
scanf("%d,%d,%d",
(1));
if(
(2))
printf("(3)",a);
if((b>a)&&(b>c))
printf("b=%d\n",b);
if((c>a)&&(c>b))
printf("c=%d\n",c);
}
(2)输入2个大于10正整数a,b,求出这2个数的最小公倍数和最大公约数。
#include
intzdgys(inta,intb)/*求最大公约数*/
{intm,temp;
if(a
{temp=a;a=b;b=temp;}
while(b!
=0)
{(4);
a=b;b=m;
}
(5);
}
voidmain()
{inta,b,n;
do
{scanf(“%d,%d”,&a,&b);
}while(a<=10||b<=10);
for(n=a;(6);n++)/*求最小公倍数*/
if(n%a==0&&n%b==0)break;
printf(“最大公约数是%d\n”,zdgys(a,b));
printf(“最小公倍数是%d\n”,n);
(3)编写函数实现将数组元素按从小到大的顺序排序,主函数从键盘输入8个整数存入数组,调用函数后输出数组的元素。
#include"stdio.h"
voidrank(inta[8]);
main()
{
inti,a[8];
printf("Pleaseinputtennumbers:
\n");
for((7))
scanf("%d",(8));
printf("Theresultis:
\n");
rank(a);
}
voidrank(inta[8])
姓名:
学号:
系别:
年级专业:
(密封线内不答题)
……………………………………………………密………………………………………………封………………………………………线……………………………………线………………………………………
{
inttemp,i,j;
for(i=0;i<8;i++)
for((9))
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
for(i=0;i<8;i++)
printf("%3d",a[i]);
printf("\n");
}
(4)输入一行字符,分别统计出其中大小写英文字母、空格、数字和其他字母的个数。
#include
main()
{inta=0,b=0,c=0,d=0;
charm;
printf("pleaseinputwords:
\n");
while((m=getchar())!
='\n')
{if(((10))||(m>='A'&&m<='Z'))
a++;
elseif((11))
b++;
elseif((12)&&m<='9')
c++;
else
d++;
}
printf("ithas%dletters,%dblanks,%ddigits,%dotherchar\n",a,b,c,d);
}
(5)下面函数实现函数strlen()功能,即计算指针p所指向的字符串的实际字符个数。
unsignedintMystrlen(char*p)
{unsignedintlen;
len=(13);
for(;*p!
=’\0’;p++)
len(14);
return(15);
}
四、编程题(共20分每题10分)
1编写程序求解下面的式子的结果
(1)s=1*3+2*4+3*5+…+n*(n+2),其中n由键盘输入,要求将结果s输出。
2有一个5×3的数组a,要求:
1)主函数从键盘输入各元素的值,存在该数组中;(3分)
2)用函数实现:
求数组中所有元素的最大值,并把该最大值与数组的最后一个元素的值互换(即把该最大值存放在数组的最后一个元素的位置上,把数组最后一个元素的位置存放该最大值);(4分)
3)用函数实现:
打印5×3的数组。
(3分)
东莞理工学院(本科)试卷(B卷)
姓名:
学号:
系别:
年级专业:
(密封线内不答题)
……………………………………………………密………………………………………………封………………………………………线……………………………………线………………………………………
2012--2013学年第一学期
《程序设计基础》答题卡
一、
单选题(共40分,每题2分)
(1)
(2)(3)(4)(5)
(6)(7)(8)(9)(10)
(11)(12)(13)(14)(15)
(16)(17)(18)(19)(20)
二、
程序阅读(共25分,每题5分)
(1)
(2)
(3)(4)(5)
三、
程序填空(共15分每空1分)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
四、
编程题(共20分,每题10分)
程序1如下:
姓名:
学号:
系别:
年级专业:
(密封线内不答题)
……………………………………………………密………………………………………………封………………………………………线……………………………………线………………………………………
程序2如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 莞工C语言 程序设计基础B卷 莞工 语言 程序设计 基础