C语言程序设计.docx

上传人:b****6 文档编号:7125406 上传时间:2023-01-20 格式:DOCX 页数:25 大小:290.04KB
下载 相关 举报
C语言程序设计.docx_第1页
第1页 / 共25页
C语言程序设计.docx_第2页
第2页 / 共25页
C语言程序设计.docx_第3页
第3页 / 共25页
C语言程序设计.docx_第4页
第4页 / 共25页
C语言程序设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

C语言程序设计.docx

《C语言程序设计.docx》由会员分享,可在线阅读,更多相关《C语言程序设计.docx(25页珍藏版)》请在冰豆网上搜索。

C语言程序设计.docx

C语言程序设计

江南大学现代远程教育第一阶段练习题

考试科目:

《C语言程序设计》第一章至第四章(总分100分)

学习中心(教学点)批次:

层次:

专业:

学号:

身份证号:

姓名:

得分:

 

一单选题(共20题,总分值40,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。

1.有以下程序

main()

{inti=1,j=1,k=2;

if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);

}

执行后输出结果是(C)。

(2分)

A.1,1,2

B.2,2,1

C.2,2,2

D.2,2,3

2.已有定义:

intx=3,y=4,z=5;,则表达式!

(x+y)+z-1&&y+z/2的值是(D)。

(2分)

A.6

B.0

C.2

D.1

3.执行以下程序段后,变量a,b,c的值为(C)。

intx=11,y=10,a,b,c;

a=(--x==y++)?

--x:

++y;

b=x++;c=y;(2分)

A.a=10,b=10,c=9

B.a=9,b=9,c=12

C.a=9,b=9,c=11

D.a=1,b=9,c=11

4.以下程序的输出结果是用(D)表示。

main()

{intk=17;

printf("%d,%o,%x\n",k,k,k);

}(2分)

A.17,021,0x11

B.17,17,17

C.17,0x11,021

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”,&i,&j,&k);

C.scanf(“%d,%d,%d”,&i,&j,&k);

D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);

6.以下非法的赋值语句是(C)。

(2分)

A.n=(i=2,++i);

B.j++;

C.++(i+1);

D.x=j>0;

7.已知c是字符型变量,以下不正确的赋值语句是

(A)。

(2分)

A.c=”a”

B.c=’a’

C.c=’\141’

D.c=’\x61’+3

8.以下不符合C语言语法的赋值表达式是(D)。

(2分)

A.d=9+e,e++,d+9

B.k=i==j

C.n1+=n2+3

D.a=b+c=a+7

9.若有以下程序:

main()

{intk=2,i=2,m;

m=(k+=i*=k);

printf(“%d,%d\n”,m,i);}

执行后的输出结果是(C)。

(2分)

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)。

(2分)

A.s=a+b;

B.s=a+c;

C.s=s+c;

D.s=b+c;

12.以下选项中合法的实型常数是(C)。

(2分)

A.5E2.0

B.E-3

C..2E1

D.1.3E

13.下列说法中正确的是(B)。

(2分)

A.在switch语句中一定要使用break语句

B.在switch语句中不一定要使用break语句

C.break语句是switch语句的一部分

D.break只能用于switch语句中

14.C语言中对于嵌套if语句规定else总是与(D)配对?

(2分)

A.第一个if

B.其之前最近的if

C.缩进位值相同的if

D.其之前最近的不带else的if语句

15.以下选项中,与k=n++完全等价的表达式是(A)。

(2分)

A.k=n,n=n+1

B.n=n+1,k=n

C.k=++n

D.k+=n+1

16.C语言中各种基本数据类型的存储空间长度排列为(C)。

(2分)

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++);(2分)

A.4次

B.5次

C.99次

D.0次

18.下列关于C语言用户标识符的叙述中正确的是(B)。

(2分)

A.用户标识符中可以出现在下划线和中划线(减号)。

B.用户标识符中不可以出现中划线,但可以出现下划线。

C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头。

D.用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头。

19.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)。

(2分)

A.6.500000

B.6

C.5.500000

D.6.000000

20.下列判断char类型变量C1是为数字的最简单且正确的表达式(B)。

(2分)

A.'0'<=C1<='9'

B.(C1>='0')&&(C1<='9')

C.(C1>=0)&&(C1<=9)

D.('0'<=C1)&&('9'<=C1)

二填空题(每空2分,总分值30)

21.break语句的功能___提前结束循环__,contitue语句的功能___结束本次循环_____。

22.以下程序实现求100~200,400~600间的全部素数,并以10个数一行的格式输出。

#include<math.h>

main()

{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”

main()

{charc;scanf(“%c”,&c);

switch(c-‘2’)

{case0:

case1:

putchar(c+4);

case2:

putchar(c+4);break;

case3:

putchar(c+3);

default:

putchar(c+2);break;}

printf(“\n”);}

当分别输入1,2,5时,输出为____________3____________________、______________________66__________、________________87________________。

25.斐波纳契数列中头两个数是0和1,从第三个数开始,每个数等于前两个数的和,即:

0,1,1,2,3,5,8,13,21,……等。

求斐波纳契数列的前20个数。

要求每行输出5个数。

请填空。

#include<stdio.h>

main()

{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_____________)

printf(“\n”);

f1=f2;f2=______f_____________________;

}

printf(“\n”);

}

三编程题(共2题,总分值30)

26.利用循环实现打印以下图形。

(15分)

27.采用二分法求方程2(x³)-4(x²)+3x-6=0在(-10,10)之间的根。

(15分)

江南大学网络教育第二阶段练习题

考试科目:

《C语言程序设计》第章至第章(总分100分)

__________学习中心(教学点)批次:

层次:

专业:

学号:

身份证号:

姓名:

得分:

 

一单选题(共20题,总分值40分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。

1.下述对C语言字符数组的描述中错误的是()。

(2分)

A.字符数组可以存放字符串

B.字符数组的字符串可以整体输入、输出

C.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D.不可以用关系运算符对字符数组中的字符串进行比较

2.有以下程序

voidf(intv,intw)

{intt;

t=v;v=w;w=t;

}

main()

{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的正确语句是()。

(2分)

A.str1={"Books"};

B.strcpy(str1,str2);

C.str1=str2;

D.strcpy(str2,str1);

4.若有变量说明:

chars,s1[20];执行语句:

s="student";s1=s;正确的叙述是()。

(2分)

A.二个语句都不正确

B.s所指向的字符串和s1的值都是"student"

C.第一个语句正确,而第二个语句不正确

D.第二个语句正确,而第一个语句不正确

5.C语言的编译系统对宏命令是()时候处理的。

(2分)

A.在程序运行

B.在程序连接时

C.和源程序其它C语言同时进行编译时

D.对源程序其它成份正式编译之前进行处理的

6.下列说法不正确的是()。

(2分)

A.宏替换不占用运行时间

B.宏无类型

C.宏替换只是字符替换

D.宏名必须用大写字母表示

7.若有以下说明和语句,则输出结果是()。

charsp[]="\x69\082\n";

printf("%d",strlen(sp));(2分)

A.3

B.5

C.1

D.字符串中有非法字符,输出值不定

8.以下函数调用中有()个实参。

expd((a1,a2,a3),(a4,a5),a7,a8)

(2分)

A.4个

B.3个

C.8个

D.5个

9.执行完下面的程序段后,屏幕显示的内容为()。

main()

{inta=2,i;

for(i=0;i<3i=""printf=""d=""f=""a="">

}

f(inta)

{intb=0;

staticintc=3;

b++;

c++;

return(a+b+c);

}

(2分)

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);(2分)

A.75

B.126

C.125

D.76

11.函数调用可以……,以下错误的是()。

(2分)

A.出现在执行语句中

B.出现在一个表达式中

C.作为一个函数的实参

D.作为一个函数的形参

12.C语言中函数能否嵌套调用和递归调用?

以下说法正确的是()。

(2分)

A.二者均不可

B.前者可,后者不可

C.前者不可,后者可

D.二者均可

13.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()。

(2分)

A.float型

B.int型

C.long型

D.double型

14.有两个字符数组a,b,则以下正确的输入语句是()。

(2分)

A.gets(a,b);

B.scanf("%s%s",a,b);

C.scanf("%s%s",&a,&b);

D.gets("a"),gets("b");

15.数组名作为参数传递给函数,此时作为实在参数的数组名被处理为()。

(2分)

A.该数组的长度

B.该数组的元素个数

C.该数组中各元素的值

D.该数组的首地址

16.以下能正确定义一维数组的选项是()。

(2分)

A.intnum[];

B.#defineN100

intnum[N];

C.intnum[0..100];

intnum[N];

D.intN=100;

17.若程序中定义了以下函数

doublemyadd(doublea,doubleB)

{return(a+B);}

并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。

(2分)

A.doublemyadd(doublea,B);

B.doublemyadd(double,double);

C.doublemyadd(doubleb,doubleA);

D.doublemyadd(doublex,doubley);

18.以下描述中,正确的是()。

(2分)

A.调用函数时,实参可以是表达式

B.调用函数时,将为形参分配内存单元

C.调用函数时,实参与形参的原型必须一致

D.调用函数时,实参与形参可以用内存单元

19.在C语言中,引用数组元素时,其下标的数据类型允许是()。

(2分)

A.整型常量

B.整型表达式

C.整型常量或整型表达式

D.任何类型的表达式

20.变量的有效范围与其定义位置有关,(),其作用域在整个源程序文件中都有效。

(2分)

A.在第一个函数中定义的变量

B.在定义第一个函数之前所定义的变量

C.在主函数中定义的变量

D.在函数中定义的静态变量

二填空题(共7题,总分值28分)

21.以下程序运行后的输出结果是__9____。

#defineSQR(x)x*x

main()

{inta,k=3;

a=++SQR(k+1);

printf("%d\n",a);}

(4分)22.有以下程序

voidswap1(intc[])

{intt;

t=c[0];c[0]=c[1];c[1]=t;

}

voidswap2(intc0,intc1)

{intt;

t=c0;c0=c1;c1=t;

}

main()

{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(动态存储)__。

(4分)

25.以下函数的功能是删除字符串s中的所有数字字符。

请填空。

void  dele(chars[])

{ intn=0,i;

for(i=0,s[i];i++)

if(__s[i]<'0'||s[i]>'9'__)

s[n++]=s[i];

s[n]=_'\0'_;

}

(4分)

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”

main()

{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);

else

printf(“**”);}

(4分)

三编程题(共2题,总分值32分)

28.编写程序将下标为奇数的数组元素从数组中删除,然后排序输出。

(16分)

29.编写程序实现输入一个十进制数,将其转化为指定进制的数制字符。

(16分)

28.

#define N 10

void sort(inta[],intn)

{intI,j,t;

for(I=1;I<=n-1;I++)

for(j=0;j

if(a[j]>a[j+1])

{t=a[j];a[j]=a[j+1];a[j+1]=t;}}

main()

{inta[N],I,k=0;

for(I=0;I

scanf("%d",&a[I]);

for(I=0;I

if(I%2==0)a[k++]=a[I];

sort(a,k);

for(I=0;I

printf("%d",a[I]);

 

29.

#include"string.h"

#include"stdio.h"

voidf(intm,intr,chara[])

{inti=0,k;

charb[17]="0123456789ABCDEF",t;

While(m!

=0)

{a[i++]=b[m%r];

m=m/r;

}

a[i]='\0' ;

puts(a) ;

k=strlen(a) ;

for(i=0;i

{t=a[i];a[i]=a[k-1-i];a[k-l-i]=t;}

puts(a);

}

main()

{intr,m,i=0;

chara[16];

printf("pleaseinputm,r\n");

do

{scanf("%d,%d",&m,&r);

}while(m<0||r<2ll||r>16);

f(m,r,a);

printf("%dzhuan huan cheng %d jin zhi zi fu chuan wei %s\n", m,r,a) ;

}

江南大学网络教育第三阶段练习题

考试科目:

《C语言程序设计》第章至第章(总分100分)

__________学习中心(教学点)批次:

层次:

专业:

学号:

身份证号:

姓名:

得分:

 

江南大学现代远程教育第三阶段练习题

考试科目:

《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、有以下程序

main()

{char*s[]={"one","two","three"},*p;

p=s[1];

printf("%c,%s\n",*(p+1),s[0]);

}

执行后输出结果是()。

A、n,twoB、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1