C语言程序设计Word文件下载.docx
《C语言程序设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
D.17,21,11
5.已知i、j、k为int型变量,若从键盘输入:
1,2,3<
回车>
,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)。
(2分)
A.scanf(“%2d%2d%2d”,&
i,&
j,&
k);
B.scanf(“%d%d%d”,&
C.scanf(“%d,%d,%d”,&
D.scanf(“i=%d,j=%d,k=%d”,&
6.以下非法的赋值语句是(C)。
A.n=(i=2,++i);
B.j++;
C.++(i+1);
D.x=j>0;
7.已知c是字符型变量,以下不正确的赋值语句是
(A)。
A.c=”a”
B.c=’a’
C.c=’\141’
D.c=’\x61’+3
8.以下不符合C语言语法的赋值表达式是(D)。
A.d=9+e,e++,d+9
B.k=i==j
C.n1+=n2+3
D.a=b+c=a+7
9.若有以下程序:
{intk=2,i=2,m;
m=(k+=i*=k);
printf(“%d,%d\n”,m,i);
执行后的输出结果是(C)。
A.8,6
B.8,3
C.6,4
D.7,4
10.字符串”\\\’abcd\123\xAB\t”的长度为()。
D(2分)
A.8
B.17
C.-9
D.10
11.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;
b<=c;
b++)s=s+1;
则与上述程序段功能等价的赋值语句是(B)。
A.s=a+b;
B.s=a+c;
C.s=s+c;
D.s=b+c;
12.以下选项中合法的实型常数是(C)。
A.5E2.0
B.E-3
C..2E1
D.1.3E
13.下列说法中正确的是(B)。
A.在switch语句中一定要使用break语句
B.在switch语句中不一定要使用break语句
C.break语句是switch语句的一部分
D.break只能用于switch语句中
14.C语言中对于嵌套if语句规定else总是与(D)配对?
A.第一个if
B.其之前最近的if
C.缩进位值相同的if
D.其之前最近的不带else的if语句
15.以下选项中,与k=n++完全等价的表达式是(A)。
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
16.C语言中各种基本数据类型的存储空间长度排列为(C)。
A.char≤long≤int≤float≤double
B.double≤float≤long≤int≤char
C.char≤int≤long≤float≤double
D.float≤int≤long≤char≤double
17.下面的for循环最多可执行(A)次。
for(x=0;
y=0;
(y!
=99)&
(x<4);
x++);
A.4次
B.5次
C.99次
D.0次
18.下列关于C语言用户标识符的叙述中正确的是(B)。
A.用户标识符中可以出现在下划线和中划线(减号)。
B.用户标识符中不可以出现中划线,但可以出现下划线。
C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头。
D.用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头。
19.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)。
A.6.500000
B.6
C.5.500000
D.6.000000
20.下列判断char类型变量C1是为数字的最简单且正确的表达式(B)。
A.'
0'
<=C1<='
9'
B.(C1>='
)&
(C1<='
)
C.(C1>=0)&
(C1<=9)
D.('
<=C1)&
('
<=C1)
二填空题(每空2分,总分值30)
21.break语句的功能___提前结束循环__,contitue语句的功能___结束本次循环_____。
22.以下程序实现求100~200,400~600间的全部素数,并以10个数一行的格式输出。
#include<math.h>
{intm,k,I,n=0;
for(m=101;
m<=600;
m+=2)
{
if(m>200____&
_____m<400)
_______continue________;
k=sqrt(m);
for(I=2;
I<=k;
I++)
if(m%I==0)
_______break________;
if(______I>
K_____________){printf(“%d”,m);
n=n+1;
if(n%10==0)printf(“\n”);
printf(“\n”);
}(6分)
23.下述程序段的运行结果是____________5______________。
intx,y;
x=17;
y=26;
printf(“%d”,y/=(x%=6));
24.#include“stdio.h”
{charc;
scanf(“%c”,&
c);
switch(c-‘2’)
{case0:
case1:
putchar(c+4);
case2:
break;
case3:
putchar(c+3);
default:
putchar(c+2);
}
当分别输入1,2,5时,输出为____________3____________________、______________________66__________、________________87________________。
25.斐波纳契数列中头两个数是0和1,从第三个数开始,每个数等于前两个数的和,即:
0,1,1,2,3,5,8,13,21,……等。
求斐波纳契数列的前20个数。
要求每行输出5个数。
请填空。
#include<stdio.h>
{intf,f1,f2,I;
printf(“Fibonacciseries:
\n”);
f1=0;
f2=_______1______________;
printf(“%6d,%6d,”,f1,f2);
for(I=3;
I<=20;
____I++____________)
{f=_________f1+f2_____________;
printf(“%6d,”,f);
if(________I%5==0_____________)
f1=f2;
f2=______f_____________________;
三编程题(共2题,总分值30)
26.利用循环实现打印以下图形。
(15分)
27.采用二分法求方程2(x³
)-4(x²
)+3x-6=0在(-10,10)之间的根。
江南大学网络教育第二阶段练习题
《C语言程序设计》第章至第章(总分100分)
__________学习中心(教学点)批次:
得分:
一单选题(共20题,总分值40分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
1.下述对C语言字符数组的描述中错误的是()。
A.字符数组可以存放字符串
B.字符数组的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符"
="
对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
2.有以下程序
voidf(intv,intw)
{intt;
t=v;
v=w;
w=t;
{intx=1,y=3,z=2;
if(x>
y)f(x,y);
elseif(y>
z)f(y,z);
elsef(x,z);
printf(“%d,%d,%d\n”,x,y,z);
执行后输出结果是()。
(2分)
A.1,2,3
B.3,1,2
C.1,3,2
D.2,3,1
3.有语句charstr1[10],str2[10]={"
books"
};
则能将字符串books赋给数组str1的正确语句是()。
A.str1={"
Books"
B.strcpy(str1,str2);
C.str1=str2;
D.strcpy(str2,str1);
4.若有变量说明:
chars,s1[20];
执行语句:
s="
student"
;
s1=s;
正确的叙述是()。
A.二个语句都不正确
B.s所指向的字符串和s1的值都是"
C.第一个语句正确,而第二个语句不正确
D.第二个语句正确,而第一个语句不正确
5.C语言的编译系统对宏命令是()时候处理的。
A.在程序运行
B.在程序连接时
C.和源程序其它C语言同时进行编译时
D.对源程序其它成份正式编译之前进行处理的
6.下列说法不正确的是()。
A.宏替换不占用运行时间
B.宏无类型
C.宏替换只是字符替换
D.宏名必须用大写字母表示
7.若有以下说明和语句,则输出结果是()。
charsp[]="
\x69\082\n"
%d"
strlen(sp));
A.3
B.5
C.1
D.字符串中有非法字符,输出值不定
8.以下函数调用中有()个实参。
expd((a1,a2,a3),(a4,a5),a7,a8)
A.4个
B.3个
C.8个
D.5个
9.执行完下面的程序段后,屏幕显示的内容为()。
{inta=2,i;
for(i=0;
i<
3i="
"
printf="
d="
f="
a="
>
f(inta)
{intb=0;
staticintc=3;
b++;
c++;
return(a+b+c);
A.777
B.777
C.789
D.789
10.若有宏定义与变量说明如下:
#defineX5
#defineYX+1
#defineZY*X/2
inta;
a=Y;
则执行以下printf语句后输出的结果是()。
Printf("
%d%d\n"
Z,--a);
A.75
B.126
C.125
D.76
11.函数调用可以……,以下错误的是()。
A.出现在执行语句中
B.出现在一个表达式中
C.作为一个函数的实参
D.作为一个函数的形参
12.C语言中函数能否嵌套调用和递归调用?
以下说法正确的是()。
A.二者均不可
B.前者可,后者不可
C.前者不可,后者可
D.二者均可
13.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()。
A.float型
B.int型
C.long型
D.double型
14.有两个字符数组a,b,则以下正确的输入语句是()。
A.gets(a,b);
B.scanf("
%s%s"
a,b);
C.scanf("
&
a,&
b);
D.gets("
a"
),gets("
b"
);
15.数组名作为参数传递给函数,此时作为实在参数的数组名被处理为()。
A.该数组的长度
B.该数组的元素个数
C.该数组中各元素的值
D.该数组的首地址
16.以下能正确定义一维数组的选项是()。
A.intnum[];
B.#defineN100
intnum[N];
C.intnum[0..100];
intnum[N];
D.intN=100;
17.若程序中定义了以下函数
doublemyadd(doublea,doubleB)
{return(a+B);
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。
A.doublemyadd(doublea,B);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doubleA);
D.doublemyadd(doublex,doubley);
18.以下描述中,正确的是()。
A.调用函数时,实参可以是表达式
B.调用函数时,将为形参分配内存单元
C.调用函数时,实参与形参的原型必须一致
D.调用函数时,实参与形参可以用内存单元
19.在C语言中,引用数组元素时,其下标的数据类型允许是()。
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
20.变量的有效范围与其定义位置有关,(),其作用域在整个源程序文件中都有效。
A.在第一个函数中定义的变量
B.在定义第一个函数之前所定义的变量
C.在主函数中定义的变量
D.在函数中定义的静态变量
二填空题(共7题,总分值28分)
21.以下程序运行后的输出结果是__9____。
#defineSQR(x)x*x
{inta,k=3;
a=++SQR(k+1);
%d\n"
a);
(4分)22.有以下程序
voidswap1(intc[])
t=c[0];
c[0]=c[1];
c[1]=t;
voidswap2(intc0,intc1)
t=c0;
c0=c1;
c1=t;
{inta[2]={3,5},b[2]={3,5};
swap1(A);
swap2(b[0],b[1]);
printf(“%d,%d,%d,%d\n”,a[0],a[1],b[0],b[1]);
其输出结果是_5,3,3,5__。
(4分)
23.在C语言中,二维数组元素在内存中的存放顺序是按_行_存放的。
(4分)
24.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为_auto(动态存储)__。
25.以下函数的功能是删除字符串s中的所有数字字符。
void
dele(chars[])
{
intn=0,i;
for(i=0,s[i];
i++)
if(__s[i]<
'
||s[i]>
__)
s[n++]=s[i];
s[n]=_'
\0'
_;
26.执行以下程序后,输出的结果是__4___。
intm=10;
intf(intx,inty)
{intm=5;
m+=x*y;
returnm;
}
main()
{inta=6,b=7;
printf(“%d\n”,f(a,b)/m);
(4分)27.以下程序实现从键盘上输入一个字符,用折半查找法找出该字符在已排序的字符串a中的位置。
若字符不在,则打印**。
请完善以下程序。
#include”stdio.h”
#include”string.h”
{charstr[100],ch;
intbot=0,top,mid,flag=0;
gets(str);
getchar(ch);
top=___strlen(str)-1_;
while((top-bot)>
=0)
{mid=___(top+bot)/2_;
if(str[mid]==c)
{___flag=1__;
__break__;
elseif(str[mid]
bot=_mid+1__;
else
top=_mid-1__;
if(flag)
printf(“%c字符在已知字符串中位置是%d\n”,c,mid+1);
printf(“**”);
(4分)
三编程题(共2题,总分值32分)
28.编写程序将下标为奇数的数组元素从数组中删除,然后排序输出。
(16分)
29.编写程序实现输入一个十进制数,将其转化为指定进制的数制字符。
28.
#define
N
10
void
sort(inta[],intn)
{intI,j,t;
for(I=1;
I<
=n-1;
for(j=0;
j<
n-I;
j++)
if(a[j]>
a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}}
{inta[N],I,k=0;
for(I=0;
N;
scanf("
a[I]);
for(I=0;
if(I%2==0)a[k++]=a[I];
sort(a,k);
k;
printf("
a[I]);
29.
#include"
string.h"
stdio.h"
voidf(intm,intr,chara[])
{inti=0,k;
charb[17]="
0123456789ABCDEF"
t;
While(m!
{a[i++]=b[m%r];
m=m/r;
a[i]='
puts(a)
k=strlen(a)
for(i=0;
k/2;
i++)
{t=a[i];
a[i]=a[k-1-i];
a[k-l-i]=t;
puts(a);
{intr,m,i=0;
chara[16];
pleaseinputm,r\n"
do
{scanf("
%d,%d"
m,&
r);
}while(m<
0||r<
2ll||r>
16);
f(m,r,a);
%dzhuan
huan
cheng
%d
jin
zhi
zi
fu
chuan
wei
%s\n"
m,r,a)
江南大学网络教育第三阶段练习题
江南大学现代远程教育第三阶段练习题
《C语言程序设计》第10章至第13章(总分100分)
一、单项选择题(本题共20小题,每小题2分,共40分。
1、若有说明:
intn=2,*p=&
n,*q=p;
,则以下非法的赋值语句是()。
A、p=q;
B、*p=*q;
C、n=*q;
D、p=n;
2、已定义以下函数
fun(int*p)
{return*p:
该函数的返回值是()。
A、不确定的值B、形参p中存放的值
C、形参p所指存储单元中的值D、形参p的地址值
3、有以下程序
{char*s[]={"
one"
"
two"
three"
},*p;
p=s[1];
%c,%s\n"
*(p+1),s[0]);
A、n,twoB、