自考计算机专业《C语言程序设计》模拟试题2文档格式.docx
《自考计算机专业《C语言程序设计》模拟试题2文档格式.docx》由会员分享,可在线阅读,更多相关《自考计算机专业《C语言程序设计》模拟试题2文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
![自考计算机专业《C语言程序设计》模拟试题2文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/27/ec23102d-2d63-4d05-a803-c40fba4e8fdd/ec23102d-2d63-4d05-a803-c40fba4e8fdd1.gif)
2、C语言中,char型数据在内存中的存放形式是()
A、ASCII码B、原码C、反码D、补码
3、以下选项中合法的用户标识符是()
A、intB、A.datC、3DmaxD、_2Test
4、下列运符中优先级最高的是()
A、++B、&
&
C、?
:
D、!
=
5、已知inti,a;
执行语句i=(a=2*3,a*5),a+6后,i的值是()
A、6B、12C、30D、36
6、若定义inta[10];
则对a数组元素的正确引用是()。
A、a[10]B、a[4.3]C、a(5)D、a[6-6]
7、在宏定义#defineA3.897678中,宏名A代替一个()。
A、单精度数B、双精度数C、常量D、字符序列
8、以下代表文件包含命令的关键字是
A、defineB、printfC、includeD、double
9、有以下程序:
main()
{inta=1,b=2,m=0,n=0,k;
k=(n=b>
a)||(m=a<
b);
printf("
%d,%d\n"
k,m);
}
程序运行后的输出结果是()
A、0,0B、1,0C、0,1D、1,1
10、为了判断两个字符串s1和s2是否相等,应使用()
A、if(s1=s2)B、if(strcmp(s1,s2))
C、if(s1==s2)D、if(strcmp(s1,s2)==0)
11、下列选项中正确的语句组是()
A、char*s;
s="
Beijing"
;
B、chars[8];
s={"
};
C、chars[8];
D、char*s;
12、若有以下定义:
chars[20]=”programming”,*ps=s;
则不能代表字符o的表达式是()
A、ps+2B、s[2]C、ps[2]D、ps+=2,*ps
13、有以下函数定义:
voidfun(intn,doublex){……}
若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()
A、fun(inty,doublem);
B、k=fun(10,12.5);
C、fun(x,n);
D、voidfun(n,x);
14、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()
A、函数调用可以作为独立的语句存在
B、函数调用可以作为一个函数的实参
C、函数调用可以出现在表达式中
D、函数调用可以作为一个函数的形参
15、有结构定义如下:
structstudent{intnum;
charname[10];
}STU;
则下面的叙述不正确的是()
A、STU是用户定义的结构类型名
B、struct是结构类型关键字
C、structstudent是用户定义的结构类型
D、num是结构成员名
二、填空题(本大题共10小题,每小题1分,共10分)
1、C源程序的基本单位是。
2、用switch语句来实现选择结构的程序设计时,一般要和语句连用才能实现真正的分支。
3、为表示关系20≥y≥10,应使用C语言表达式。
4、C语言的数组名是一个常量,不能对其进行赋值运算和自加、减运算。
5、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是。
6、若未指定函数的类型,则默认函数的类型为类型。
7、如果在程序中用到sqrt()函数,则应该在程序的开头部分加上相应的头文件,其命令是:
。
8、定义一个指向整型变量的指针变量p的语句为:
9、C语言中根据数据的组织形式,把文件分为ASCII文件和文件两种。
10、引用结构体变量中的成员需要使用”.”或运算符。
三、阅读程序并写出其执行结果(本题共25分)
1、以下程序输出结果是。
#include<
stdio.h>
main()
{intnum=0;
while(num<
=2)
{num++;
%d"
,num);
}
2、下面程序的运行结果是。
main()
{inti;
for(i=0;
i<
3;
i++)
switch(i)
{case1:
%d"
i);
case2:
default:
}
}
3、下面程序的运行结果是:
main()
{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;
i++)
for(j=i;
j>
=0;
j--)
s+=a[i][j];
printf("
%d\n"
s);
4、以下程序的输出结果是。
{intarr[]={30,25,20,15,10,5};
int*p=arr;
p++;
printf(“%d\n”,*(p+3));
5、以下程序的输出结果是。
f1(inta,intb)
{intc;
a+=a;
b+=b;
c=f2(a,b);
returnc*c;
f2(inta,intb);
c=a*b%3;
returnc;
{intx=11,y=19;
f1(x,y));
四、程序填空题(本大题共2小题,共20分)
1、求1!
+2!
+3!
+……+5!
longfun(intn)
{longp=1;
inti;
for(i=1;
=n;
①;
return②;
{longs;
intk,n=5;
③;
for(k=1;
k<
=n;
④)
s=s+⑤;
printf(“%ld\n”,s);
2、完成下面的程序,使它能够输出10~1000之间的所有素数。
(只有能被本身及1除尽的数,称为素数)
#include<
{inti;
for(i=10;
=1000;
i++)
if(isprime(①))
printf(“%d,”,i);
printf(“\n”);
isprime(intn)
for(i=2;
=sqrt(n);
②)
if(n%i==0)return(③);
return(④);
五、编程题(本大题共2小题,共15分)
1、定义一个函数,实现将两个数按由大到小的顺序输出(用指针的方法实现)(8分)
swap(int*p,int*q)
{③
{inta,b;
Int*p1=&
a,*p2=&
b;
Scanf(“%d,%d”,①,②);
swap(p1,p2);
Printf(“%d,%d”,a,b);
2、用函数的递归来实现N!
(N为输入的任意的一个数)。
XX大学计算机学院2008~2009学年第一学期
年级08专业信管、应用、网络、电子信息工程层次:
普通高职普通本科
1
2
3
4
5
6
7
8
9
10
答案
11
12
13
14
15
1、
2、
3、4、
5、6、7、
8、9、10、
1、程序的执行结果是:
2、程序的执行结果是:
3、程序的执行结果是:
4、程序的执行结果是:
5、程序的执行结果是:
1、①、②、③、④、⑤、
2、①、②、③、
1、
2、