新疆大学C试题0809汉本科.docx
- 文档编号:29436298
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:13
- 大小:19.99KB
新疆大学C试题0809汉本科.docx
《新疆大学C试题0809汉本科.docx》由会员分享,可在线阅读,更多相关《新疆大学C试题0809汉本科.docx(13页珍藏版)》请在冰豆网上搜索。
新疆大学C试题0809汉本科
课程代码:
座位号:
新疆大学2008—2009学年度第一学期期末考试
《C语言程序设计》B试卷(汉本)
姓名:
学号:
专业:
学院:
班级:
2008年01月
题号
一
二
三
四
五
六
七
八
总分
得分
第一部分选择题(共20分)
得分
评卷人
一、单项选择题(本大题共20小题,每题只有一个正确答案,答对一题得1分,共20分)
1、以下说法中正确的是【】
A)C语言程序总是从第一个的函数开始执行
B)在C语言程序中,要调用的函数必须在main()函数中定义
C)C语言程序总是从main()函数开始执行
D)C语言程序中的main()函数必须放在程序的开始部分
1.C语言程序的三种基本结构是()
A.顺序、选择、循环B.递归、循环、转移
C.嵌套、递归、顺序D.循环、转移、顺序
2.已知整型变量a=0和b=2,则a&&b的值是()
A.0B.1C.2D.3
3.C语言表示逻辑“真”值的数据是()
A.trueB.tC.非0整型值D.整型值0
4.下面程序段执行后,a的值是()
inta=1;
intb=a++;
A.0B.1C.2D.-1
5.类型定义chars[]=“programdesign”;char*p;执行语句p=s+7之后,printf(“%s”,p)输出的内容是()
A.dB.designC.programD.programdesign
6.关于switch语句,下述正确的说法是()
A.每一个case的常量表达式的值可以相同
B.各个case的出现次序会影响执行结果
C.每个case后面必须有一组执行语句
D.可以通过break语句终止switch语句的执行
7.在传地址方式的函数调用中,传递给被调用函数形参的是()
A.地址B.数据C.变量D.常量
8.关于C语言函数的叙述,正确的是()
A.C语言程序总是从第一个定义的函数开始执行
B.在C语言程序中,要调用的函数必须在main中定义
C.C语言程序总是从main函数开始执行
D.C语言程序中main函数必须放在程序的开始部分
9.在C语言中,while语句中的条件取()值时,结束循环。
A.0B.1C.非0D.true
10.设a=12,表达式a+=a-=a*=a运算后,a的值为()
A.0B.12C.24D.144
5、表达式:
10!
=9的值是【】
A)trueB)非零值
C)0D)1
6、2、设有inti;则表达式(i=1,i=10)?
i++||++i:
++i的值为()
A.1
B.2
C.3
D.10
.下面运算符优先级最高的是()
A.<=B.=
C.%D.&&
当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是
A)c=b=a;B)(a=c)‖(b=c);
C)(a=c)&&(b=c);C)a=c=b;
若已定义:
inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是
A)p+1B)a+1C)a++D)++p
7、表达式:
10!
=9的值是
A)trueB)非零值C)0D)1
8、.若数组名作实参而指针变量作形参,函数调用实参传给形参的是()
A.数组的长度B.数组第一个元素的值
C.数组所有元素的值D.数组第一个元素的地址
若有说明:
inti,j=7,*p=&i;,则与i=j;等价的语句是
A)I=*P;B)*P=*&J;C)i=&j;D)i=**p;
不能把字符串:
Hello!
赋给数组b的语句是
A)charb[10]={'H','e','l','l','o','!
'};
B)charb[10];b=“Hello!
”;
C)charb[10];strcpy(b,“Hello!
”);
D)charb[10]=“Hello!
”
11、、设有inta[]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是()
A.10,11,12
B.11,12,12
C.10,12,12
D.11,11,12
12、能正确表示a和b同时为正或同时为负的逻辑表达式是【】
A)(a>=0‖b>=0)&&(a<0‖b<0)B)(a>=0&&b>=0)&&(a<0&&b<0)
C)(a+b>0)&&(a+b<=0)D)a*b>0
13、以下定义语句中,错误的是
A)inta[]={1,2};B)char*a[3];
C)chars[10]="test";D)intn=5,a[n];
15、以下数组定义中不正确的是
A)inta[2][3];
B)intb[][3]={0,1,2,3};
C)intc[100][100]={0};
D)intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
17、当调用函数时,实参是一个数组名,则向函数传递的是【】
A)数组的长度B)数组每一个元素的地址
C)数组的首地址D)数组每个元素中的值
18、下列叙述中正确的是()。
A)函数定义不有嵌套,但函数调用可以嵌套
B)函数定义可以嵌套,但函数调用不可以嵌套
C)函数定义和函数调用都不能嵌套
D)函数定义与函数调用都可以嵌套
19、.已知说明语句int(*p)();,则下列叙述正确的是()。
A)p是一个指针变量,它指向一个一维数组
B)p是一个指针变量,它指向一个整型数据
C)p是一个指针变量,它指向一个返回值是整数的函数
D)以上都不对
20、下述对C语言字符数组的描术中错误的是
A)字符数组可以存放字符串
B)字符数组中的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
以下函数调用语句中含有()个实参。
func((exp1,exp2),(exp3,exp4,exp5));
A)1B)2C)4D)5
C语言中()。
A)不能使用do-while语句构成的循环
B)do-while语句构成的循环必须用break语句才能退出
C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环
设有以下语句,则()不是对a数组元素的正确引用,其中0≤i<10。
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A)a[p-a]B)*(&a[i])C)p[i]D)*(*(a+i))
第二部分非选择题(共80分)
得分
评卷人
二、判断题(本大题共10小题,每题1分,共10分,答A表示说法正确.答B表示说法不正确,本题只需指出正确与错误,不需要修改)
1、一个算法应该具有有零个或多个输出。
( )
2、unsigned和void在C中都是保留的。
()
3、C语言程序总是从第一个定义的函数开始执行。
()
4、函数定义与函数调用都可以嵌套( )
5、switch选择结构中必须有default子句。
( )
6、do-while语句构成的循环,当while语句中的表达式值为非零时结束循环。
( )
7、被main函数调用的函数只能是库函数。
( )
8、字符型数组中可以存放字符串。
( )
9、在C语言的复合语句中,只能包含可执行语句,不能有变量定义语句。
( )
10、数组中的各元素的数据类型可以不一致()
得分
评卷人
三、填空题(本大题共5小题,每空1分,共10分。
)
1、在C语言中,单目运算符的结合方向(运算方向)是_____________;唯一的一个三目运算符是_____________。
3、printf("%5.3f\n",123456.12345);输出为_____________。
4、表达式~3&(2&3^4)的值为_______________。
5、若有说明inti,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为_______________。
4、当执行完以下语句后,变量a的值为__________,b的值为__________,
c的值为__________。
a=6;b=++a;c=--a;
5、已知a=3、b=2,则表达式a*=b+8的值是__________。
得分
评卷人
四、分析以下程序的输出结果(本大题共5小题,每题6分,共30分。
)
intfunc()
{
staticintx=6;
x++;
printf("%d",x);
}
main()
{
func();
func();
func();
}
运行结果为:
2、inta=1,b=2;
voidfun(intx,inty)
{intz=x;
x=y;
y=z;
}
main()
{inta=10,b=20;
fun(a,b);
printf(“a=%d,b=%d\n”a,b);
}
运行结果为:
3、#defineSQR(x)x*x
main()
{inta=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
}
运行结果为:
4、#include"stdio.h"
main()
{charb[]="program";
char*a="PROGRAM";
printf("\n%c%s\n",*a,b+1);
printf("%s\n",&b[3]);
}
5、______________。
#include"string.h"
#include"stdio.h"
main()
{
charstrl[]="Howdoyoudo",*p1=strl;
strcpy(strl+strlen(strl)/2,"esshe");
printf("%s\n",pl);
}
运行结果为:
得分
评卷人
五、程序填空题(本大题共4小题,每空3分,共30分在划线处填上合适的语句)
1.该程序将字符串str中的小写字母变成大写字母
main()
{
charstr[25];
inti;
scanf("%s",str);
i=0;
while(_____________){
if(str[i]>='a'&&str[i]<='z')
str[i]=___________________;
___________________;
}
printf("%s",str);
}
2.该程序交换两个变量的值。
swap(int*x,int*y)
{
inttemp;
temp=*x;
*x=____;
*y=____;
}
main()
{
inta,b;
scanf("%d%d",&a,&b);
swap(____a,____b);
printf("a=%d,b=%d",a,b);
}
3、任意输入三条边(a,b,c)后,若能构成三角形且为等腰、等边和直角,则分别输出DY、DB和ZJ,若不能构成三角形则输出NO。
main()
{floata,b,c,a2,b2,c2
scanf("%f%f%f%,&a,&b,&c);
printf("%5.1f,%5.1f,%5.1f",a,b,c);
if(a+b>c&&b+c>a&&a+c>b)
{
if(____________________________________)printf("DY");
if(____________________________________)printf("DB");
a2=a*a;b2=b*b;c2=c*c;
if(____________________________________)printf("ZJ");
printf("\n");
}
elseprintf("NO\n");
}
4、以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。
素数是只能被1和本身整除且大于1的自然数。
#include
main()
{
inti,a[10],*p=a,sum=0;
printf("Enter10num:
\n");
for(i=0;i<10;i++)scanf("%d",&a[i]);
for(i=0;i<10;i++)
if(isprime(*(p+____
(1)_____))==1)
{
printf("%d",*(a+i));
sum+=*(a+i);
}
printf("\nThesum=%d\n",sum);
}
isprime(intx)
{
inti;
for(i=2;i<=x/2;i++)
if(x%i==0)
return(0);
______
(2)______;
以下程序的功能是将字符串a中下标值为偶数的元素由小到大排序,其他元素不变.
#include
main()
{
chara[]=”labchmfye”,t;
inti,j;
for(i=0;i<7;i+=2)
for(j=i+2;j<9;____(5)___)
if(____(6)____)
{
t=a[i];
a[i]=a[j];
a[j]=t;
j++;
}
puts(a);
printf(“\n”);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新疆大学 试题 0809 本科
![提示](https://static.bdocx.com/images/bang_tan.gif)