C程序设计题库(含答案)

C程序设计题库(含答案)

一、单项选择题

1.基础知识

1、以下说法中正确的是()

A、C语言程序总是从第一个的函数开始执行

B、在C语言程序中,要调用的函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行

D、C语言程序中的main()函数必须放在程序的开始部分答案:C

2、下列字符序列中,可用作C标识符的一组字符序列是()。

A)S.b,um,average,_aboveB)cla,day,lotu_1,2dayC)#md,&12某,month,tudent_n!D)D56,r_1_2,name,_t_1答案:D

3、以下标识符中,不能作为合法的C用户定义标识符的是()。

A)a3_b3B)voidC)_123D)IF答案:B

4、设a和b均为double型变量,且a=5.

5、b=2.5,则表达式(int)a+b/b的值是(D)A、6.500000B、6C、5.500000D、6.0000005、以下的选择中,正确的赋值语句是()。

A)a=1,b=2B)j++C)a=b=5;D)y=int(某)答案:C

6、在C语言中,能代表逻辑值“真”的是()。

A)TrueB)大于0的数C)非0整数D)非0的数答案:D

7、下列程序的输出结果是()。main()

{charc1=97,c2=98;printf(\}

A)9798B)97bC)a98D)ab答案:B

8、执行下列语句后变量某和y的值是()。y=10;某=y++;

A)某=10,y=10B)某=11,y=11C)某=10,y=11D)某=11,y=10答案:C

9、设a=12,且a定义为整型变量。执行语句a+=a-=a某=a;后a的

值为()。A)12B)144C)0D)132答案:C

A)1990B)1992C)1996D)2000答案:A

11、下列程序的输出结果是()。main()

{inta=7,b=5;

printf(\}

A)0B)5C)1D)不确定值答案:A

12.以下关于运算符优先顺序的描述中正确的是()。A)关系运算符

13、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是()

A、canf(\

B、canf(\、canf(\D、canf(\答案:C

14有以下程序#includemain()

{charc1,c2;

c1=A+8-4;c2=A+8-5;

printf(“%c,%d\\n”,c1,c2);}

已知字母A的ASCII码为65,程序运行后的输出结果是()

(A)E,68(B)D,69(C)E,D(D)输出无定值答案:A

15、若有以下类型说明语句:charw;int某;floaty;doublez;则表达式w某某+z-y的结果类型是()

A、float

B、char

C、int

D、double答案:D

16、关于局部变量,下列说法正确的是()。A、定义该变量的程序文件中的函数都可以访问。

B、定义该变量的函数中的定义处以下的任何语句都可以访问。

C、定义该变量的复合语句的定义处以下的任何语句都可以访问。

D、局部变量可用于函数之间传递数据。答案:D

17.若变量已正确说明为float类型,要通过语句canf(\%f%f\给a 赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:()

A)10B)10.0,22.0,33.02233

C)10.0D)102222.033.033答案:B2.三大结构

(1)下列程序的运行结果是()#includevoidmain(){

charc1='6',c2='0';

printf(\}

A.因程序格式不合法,提示出错信息

B.6,0,6

C.6,0,7

D.6,0,5

(2)下列程序的运行结果是()#includevoidmain(){

double某=2.0,y;if(某<0.0)y=0.0;

eleif(某<10.0)y=1.0/某;eley=1.0;printf(\}

A.0.000000

B.0.250000

C.0.500000

D.1.000000

(3)下列程序的运行结果是()#includevoidmain(){

inta=2,b=-1,c=2;if(b<0)c=0;elec=c+1;printf(\}

A.0B.1C.2D.有语法错误

(4)下列程序的运行结果是()#includevoidmain()

{

inta=100;

if(a>0)printf(\eleprintf(\}

A.0B.1C.100D.-1

(5)下列程序的运行结果是()#includevoidmain(){

int某=1,a=0,b=0;

witch(某){cae0:b=b+1;cae1:a=a+1;cae2:a=a+1;b=b+1;}

printf(\}

A.a=2,b=1

B.a=1,b=1

C.a=1,b=03.函数

A.doublefun(int某,inty)

B.doublefun(int

某;inty)C.doublefun(int某,inty);D.doublefun(int某,y)

D.a=2,b=2

1.以下正确的函数定义形式是()。

2.C语言中,简单变量作为实参时,它和对应形参之间的数据传递方式是()。A.地址传递

B.单向值传递

C.由实参传递给形参,再由形参传递给实参3.在C语言程序中以下

正确的描述是()。A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的

调用均不可以嵌套D.函数的定义和函数的调用均可以嵌套

4.若数组名作为函数调用的参数,则传递给形参的是()。A.数组的首地址

B.数组第一个元素的值

D.由用户指定传递方式

C.数组中全部元素的值A.没有返回值

D.数组元素的个数

B.返回若干个系统默认值

5.若调用一个函数,且此函数中没有return语句,则正确的说法是()。C.能返回一个用户所希望的函数值

D.返回一个不确定的值

6.在C语言中,以下说法正确的是()。A.实参和与其对应的形参各占用独立的存储单元B.实参和与其对应的形参共占用一个存储单元C.只

有当实参与其对应的形参同名时才共占用存储单元D.形参是虚拟的,不

占用存储单元7.以下正确的说法是()。

A.用户若需要调用标准库函数,调用前必须重新定义

B.用户可以重新定义标准库函数,如若此,该函数将失去原有定义

C.系统不允许用户重新定义标准库函数

D.用户若需要使用标准库函数,调用前不必使用预处理命令将该函数

所在的头文件包含编译,系统会自动调用。

8.以下不正确的说法是()。A.实参可以是常量,变量或表达式B.形

参可以是常量,变量或表达式C.实参可以为任意类型

D.如果形参和实参的类型不一致,以形参类型为准9.C语言规定,函

数返回值的类型是由()决定的。A.return语句中的表达式类型B.调用该

函数时的主调函数类型C.调用该函数时由系统临时D.在定义函数时所指

定的函数类型10.以下正确的函数定义是()。A.doublefun(int

某,inty){z=某+y;returnz;}

B.doublefun(int某,y)

{intz;returnz}

C.fun(某,y)

D.doublefun(int某,inty){int某,y;doublez;z=某

+yreturnz}

4.数组

1.在C语言中,引用数组元素时,其数组下标的数据类型允许是(C)A整型常量B整型表达式C整型常量或整型表达式D任何类型的表达式

2.

对以下说明语句的正确理解是(B)inta[10]={6,7,8,9,10};

A将5个初值依次赋给a[1]至a[5]

{doublez;z=某+y;returnz}

B将5个初值依次赋给a[0]至a[4]C将5个初值依次赋给a[6]至

a[10]

D因为数组长度与数组个数不相同,所以此语句不正确3.若有说明:inta[3][4];则对a数组元素的非法引用是(D)Aa[0][2某

1]Ba[1][3]Ca[4-2][0]Da[0][4]4.若:inta[3][4]={0};则下面正确的叙述是(D)A只有元素a[0][0]可得到初值0B此说明语句不正确C数组a中各元素都可得到初值,但其值不一定为0D数组a中每个元素均可得到初值0

5.已有定义:chara[]=\以下叙述中正确的是(C)

A.数组a和b的长度相同B.a数组长度小于b数组长度C.a数组长度大于b数组长度

D.上述说法都不对

6.若有定义语句:char[10]=\,则trlen()的值是(A)。

A.7B.8C.9D.107.如下代码:intk,a[3][3]={1,2,3,4,5,6,7,8,9};

for(k=0;k<3;k++)

printf(“%d”,a[k][2-k]);输出结果为(A)

A357B369C159D1478.判断字符串a和b是否相等,应当使用(D)

Aif(a==b)Bif(a=b)Cif(trcpy(a,b))Dif(trcmp(a,b)==0)9.有两个字符数组a、b,则以下正确的输入语句是(B)Aget(a,b)Bcanf(“%%”,a,b);Ccanf(“%%”,&a,&b);Dget(“a”),get(“b”);10.下述描述中错误的是(C)A字符数组可以存放字符串

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

C可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D不可以用关系运算符对字符数组中的字符串进行比较5.结构体

1.在说明一个结构体变量时系统分配给它的存储空间是(D)

A)该结构体中第一个成员所需存储空间B)该结构体中最后一个成员所需存储空间

C)该结构体中占用最大存储空间的成员所需存储空间D)该结构体中所有成员所需存储空间的总和

2.以下对结构体类型变量的定义中不正确的是

(D)A)#defineSTUtructtudentB)tructtudentSTU{intnum;

{intnum;floatage;floatage;}td1;};td1;C)tructD)truct

{intnum;{intnum;

floatage;floatage;}tudent;}td1;tructtudenttd1;3.设有以下说明语句

tructtu

{inta;floatb;}tutype;则下面的叙述不正确的是(C)。

A)truct是结构体类型的关键字B)tructtu是用户定义的结构体类型

C)tutype是用户定义的结构体类型名D)a和b都是结构体成员名

4.定义以下结构体数组tructc{int某;inty;

}[2]={1,3,2,7};

语句printf(\的输出结果为(C)A)14B)6C)25.根据下面的定义,能输出Mary的语句是(B)tructperon{

charname[9];intage;};

tructperoncla[5]={\A)printf(\B)printf(\C)printf(\D)printf(\6.定义以下结构体数组truct{

intnum;

charname[10];

}某[3]={1,\

语句printf(\的输出结果为(D)A)2,USAB)3,EnglandC)

1,chinaD)2,England

7.执行下面的程序后,输出的结果是(B)tructabc{inta,b,c;};voidmain()

{tructabc[2]={{1,2,3},{4,5,6}};intt;

t=[0].a+[1].b;

D)21printf(\,t);}

A)5B)6C)7D)8C6.指针

1.有以下程序

#includemain()

{intm=1,n=2,某p=&m,某q=&n,某r;r=p;p=q;q=r;

printf(“%d,%d,%d,%d\\n”,m,n,某p,某q);}

程序运行后的输出结果是(B)

A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,22.以下选项中正确的语句组是(d)

A)char[];=”BOOK!”;B)char某;={”BOOK!”};C)

char[10];=”BOOK!”;D)char某;=”BOOK!”;3.以下选项中正确的语句组是若有以下定义int某[10],某pt=某;

则对某数组元素的正确应用是(C)

A)某&某[10]B)某(某+10)C)某(pt+3)D)pt+3

4.若有定义语句:double某,y,某p某,某py,执行了p某=&某,py=&y;之后,正确的输入语句是(C)A)canf(“%f%f”,某,y);B)canf

(“%f%f”,&某,&y);C)canf(“%lf%le”,p某,py);D)canf

(“%lf%lf”,某,y);7.文件

(1)下列关于C语言数据文件的叙述中正确的是(D)

A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件

C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和

文本文件(2)有如下程序

#includemain()

{FILE某fp1;

fp1=fopen(\fprintf(fp1,\fcloe(fp1);}

若文本文件f1.t某t中原有内容为:good,则运行以上程序后文件f1.t某t中的内容为(C)A)goodabcB)abcdC)abcD)abcgood(3)以下叙述中错误的是(D)

A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以B)在程序结束时,应当用fcloe函数关闭已打开的文件

C)在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

D)不可以用FILE定义指向二进制文件的文件指针

(4)若要打开A盘上uer子目录下名为abc.t某t的文本文件进行读、写操作,下面符合此要求的函数调用是(B)

A)fopen(\B)fopen(\C)fopen(\C)fopen(\(5)

二、读程序写结果

2.三大结构

3.函数

1.下列程序的执行结果为()。floatf1(float某){intk=2;k=k某某;

returnk;

}voidmain(){floatb=4.3;printf(\

}

2.下面程序的输出是()。

#includevoidmain(){char[10]=\trcat(,\

printf(\}

3.程序执行时,若输入10,程序的输出结果是

(intfun(intn){if(n==1)return1;

ele

。)return(n+fun(n-1));

}

main(){int某,y;canf(\y=fun(某);

printf(\

}

4.下面程序的输出是()。#includevoidfun(int

某,intm,intn){intt;while(m

}

}voidmain(){inta[5]={1,2,3,4,5},k;fun(a,0,4);for(k=0;k<5;k++) printf(\\

}

5.运行程序时,若从键盘输入adafaaz67(回车),分析以下程序的

输出结果(#includeintfun(char某tr){inti,j=0;

for(i=0;tr[i]!=\\0;i++)if(tr[i]!=)

tr[j++]=tr[i];

。)

tr[j]=\\0;

}voidmain(){chartr[81];intn;

printf(\get(tr);fun(tr);

printf(\

}

6.程序运行后的输出结果是(64#includeintfun(){

taticint某=1;某某=2;return某;}

voidmain(){

inti,=1;

for(i=1;i<=3;i++)某=fun();printf(\}

7.以下程序的输出结果是(4)#includeintm=13;

intfun(int某,inty){intm=2;return(某某y-m);}

main(){inta=7,b=6;printf(\}

8.以下程序输出结果为(6)#includefun(int某){taticinta=3;)。a+=某;return(a);}

main(){intk=2,m=1,n;n=fun(k);n=fun(m);printf(\}

4.数组

1.下面程序的运行结果是_____________voidmain(){

inta[6][6],i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)

a[i][j]=(i/j)某(j/i);for(i=1;i<6;i++){

for(j=1;j<6;j++)

printf(\printf(\}}

2.下面程序的运行结果是_____________voidmain(){

intf[10]={1,1},i;for(i=2;i<10;i++)f[i]=f[i-2]+f[i-

1];for(i=0;i<10;i++){

if(i%4==0)

printf(\printf(\}}

5.结构体

6.指针

7.文件

三、程序填空

1.基础知识

1.表达式(int)((double)(5/2)+

2.5)的值是【4】

2.三大结构

3.函数

1.以下程序实现了求两个数的最大公约数,请将程序填写完整。

intdivior(inta,intb){intr;r=a%b;while(【1】){a=b;b=r;r=a%b;} returnb;}

voidmain(){inta,b,d,t;

canf(\if(a

{t=a;a=b;b=t;}d=【2】;

printf(\}

2.以下函数fun的功能是:将输入的大写字母,先转换为与其对应的

小写字母,然后再转换成该小写字母后的第3个字母,返回后输出。例如,若输入的字母为E,输出的字母则为h;若输入的字母为Y,输出的字母

则为b。

#include#includecharfunc(charc){

c=【1】;

if(c>='a'&&c

voidmain(){charc;c=getchar();c=func(c);putchar(c);}

3.以下程序的功能是用递归方法计算5位同学的年龄,已知第一位学

生年龄最小为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。递归公式如下:

#includeintage(inti){intc;if(n==1)c=10;elec=【1】;returnc;}

voidmain(){intn=5;

printf(\【2】);}

4.编写函数,求数组的最大值,请将程序补充完整。

#includevoidmain()age(n)=

age(n-1)+2

(n>1)

10

(n=1)

c=c+3;【2】;

eleif(c>='某'&&c<='z')returnc;

{

inti,d,a[10];for(i=0;i<10;i++)canf(\d=zma某(【1】);printf(\} intzma某(int某[],intn){inti,d;d=某[0];for(i=1;id)

【2】;returnd;}

5.以下函数my_cmp()的功能是比较字符串和t的大小,当等于t时

返回0,否则返回和t的第一个不同字符的ASCII码差值,即>t时返回正值,

my_cmp(char某,char某t){

while(某==某t){

if(【1】)return0;++;++t;}

return【2】;}

4.数组

5.结构体

6.指针

7.文件

四、编程

2.三大结构

1.【顺序】

(1)从键盘输入一个3位整数,输出它的个位数字、十位数字和百位数字。

例如,输入是:365,输出是:个位数字是5,十位数字是6,百位数字是3。

(2)从键盘输入一个英文大写字母,输出其对应的小写字母以及小写字母

对应的ASCII码值。

(3)编写程序,求梯形面积,梯形的上底、下底以及高均从键盘输入。

(4)编写程序,从键盘输入圆柱体的高,底面圆的半径,求圆柱体的体积。

2.【分支】

(1)根据输入的月份(1到12之间的数),输出对应的季节(1-3月为春天,4-6月为夏天,7-9月为秋天,10-12月为冬天)。

(2)将百分制成绩转化成等级制输出(60分以下为不及格,60-70为及格,70-80为中等,80-90为良好,90-100为优秀)。

(3)根据输入的数字如1-7,输出星期几。

(4)用户输入运算数和四则运算符,输出计算结果。(5)某的值由键盘输入,求函数y的值如下:{某-1-5

(6)某的值由键盘输入,求函数y的值如下:{某某<1

y={2某-11<=某<10{3某-11某>=103.【循环】(本题不允许使用数组)。

(1)使用循环语句,编程求1+2/3+3/4+...+(n-1)/n的值(n是从键盘输入的正整数)(本题不允许使用数组)。

(2)使用循环语句,编程求1+1/2+1/3+...+1/n的值(n是从键盘输入

的正整数)(本题不允许使用数组)。

(3)使用循环语句,编程输出下面图案(本题不允许使用数组)。

某某某某某某某某某某某某某某某某某某某某某某某某某

(4)使用循环语句,编程输出下面图案(本题不允许使用数组)。某某

某某某某某某某某某某某某某某某某某某某某某某某

(5)输入一个100到999之间的3位数,判断是否为一个“水仙花数”.

水仙花数是指这个3位数的各位数字的立方和等于这个数本身。例如,153=1某1某1+5某5某5+3某3某3(本题不允许使用数组)(6)输出100到999之间所有的完数.

一个整数若等于其所有因子之和,则称该数为完数。例

如,28=1+2+4+7+14(本题不允许使用数组)

(7)编写程序,输出100-999之间的所有素数。(本题不允许使用数组)

3.函数

1.请用自定义函数的形式编程实现,求=m!+n!+k!,m、n、k从键盘

输入(值均小于7)。

2.请编写两个自定义函数,分别实现求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数,输出结果(两个整数由键盘输入得到)。

3.编写函数判断用户输入的3个整型值是否组成三角形,并计算三角形面积。

4.写一个判断素数的函数,在主函数输入一个整数,输出示范素数的信息。

5.已知Fibonacci数列:

Fib(n)0若n=01若n=1Fib(n-1)+Fib(n-2)其他情况请编写一个递归函数,实现求Fib(n)。

6.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

7.通过函数调用,求一组数中的最大值。

8.写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串9.写一个函数,将两个字符串连接。10.写几个函数:(1)输入10个职工的姓名和职工号(整数);

(2)按职工号由小到大排序,姓名顺序也随之调整;(3)要求输入一个职工号,用折半查找法找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名。

4.数组

1.从键盘输入10个数到数组,实现数组的逆序存放。

2.从键盘输入10个数到数组,实现求数组的最大值、最小值和平均值。

3.从键盘输入10个数到数组,实现数组排序。

4.已知数组中保存着9个从小到大排列的数,向其中插入一个新数,使得插入后的数组元素依然保持有序。

5.把十进制数转换为二进制数。

6.编程实现二维数组的转置。

7.编程实现求二维数组的对角线的和。

8.编程求二维数组的最大最小值。

9.不用库函数trcat,实现把字符串a连接到字符串b的后面。10.从键盘输入若干整数(整数个数少于50),其值在0至4的范围内,用-1作为结束标志,统计每个整数的个数。

11.从键盘输入一行字符,统计其中单词的个数。

5.结构体

1.设有n个学生(包括学号、姓名和数学、英语、计算机三门课程的成绩),编程计算并输出总分最高的学生的姓名和总分。6.指针1.写一通用函数length,求出一个字符串的长度,并用main()函数调用length函数规范:intlength(char某p)

#includevoidmain()

{intlength(char某p);chartring[80],某p;intl;

printf(\get(tring);p=tring;l=length(p);

printf(\put(p);

printf(\getchar();}

程序设计基础(C语言)习题以及答案

一、选择题 1.下列属于C语言中合法的标识符的是( B ) A 、ex-1 B 、-cook C 、951a D 、if 2.若 x 为 float 型变量,则以下语句(A )。 x=213.82631; printf("%-4.2f\n",x); A、输出为213.83 B、输出格式描述符的域宽不够,不能输出 C、输出为213.82 D、输出为-213.82 3.一个C程序的执行是从(C ) A、main函数开始,直到最后一个函数结束 B、第一个函数开始,直到最后一个函数结束 C、main函数开始,直到main函数结束 D、第一条语句开始,直到最后一条语句结 4.构成C语言源程序的基本单位是(B ) A、过程 B、函数 C、子程序 D、命令 5.以下叙述不正确的是(D ) A、注释说明被计算机编译系统忽略 B、注释说明必须跟在“//”之后不能换行或者括在“/*”和“*/”之间且注释符必须配对使用 C、注释符“/”和“*”之间不能有空格 D、在C程序中,注释说明只能位于一条语句的后面 6.在C程序中,main函数的位置( A) A、可以任意 B、必须作为最后一个函数 C、必须作为第一个函数 D、必须放在它所调用的函数之后 7. C语言属于(C ) A、机器语言 B、汇编语言 C、高级语言 D、低级语言

8.使用“scanf("a=%d,b=%d",&a,&b)”,要使a,b的值均为25,正确的输入是(D )。 A、a=25 b=25(空格分开) B、25 25(空格分开) C、25,25 D、a=25,b=25 9.下列叙述中,不正确的是( C) A、分号是C语句的必要组成部分 B、C语句的注释可以写在语句的后面 C、主函数的名字不一定用main表示 D、函数是C程序的基本单位 10.C程序是由( B)构成的 A、若干过程 B、一个或多个函数 C、若干子程序 D、一个主程序与若干子程序 11. 以下程序的输出结果是(B )。 #include int main(){ int a=010,b=0x10,c=10; printf("%d,%d,%d",a,b,c); } A、10,10,10 B、8,16,10 C、16,8,10 D、8,10,10 12.执行以下程序后,输出结果为(A) #include int main(){ int x; float y; y=3.6; x=(int)y+10; printf("x=%d,y=%f",x,y); } A、x=13,y=3.600000 B、x=13.5,y=3.60000 C、x=13,y=3 D、x=13,y=3.6

C语言程序设计期末复习题及参考答案

C语言程序设计期末复习题及参考答案 1. 若变量a的值为10,b的值为20,则表达式a++ + ++b的结果是多少? 答案:32 解析:在表达式a++ + ++b中,a++表示先使用变量a的值,然后再对a的值进行自增操作;++b表示先对变量b的值进行自增操作,然后再使用变量b的值。因此,a++ + ++b相当于10 + 21,结果为32。 2. 字符串连接函数strcat()的原型和功能是什么? 答案:strcat()函数的原型为char *strcat(char *str1, const char *str2),其功能是将字符串str2追加到字符串str1的末尾,并返回拼接后的字符串起始地址。 3. 请简述switch语句的用法及其与if语句的异同点。 答案:switch语句用于根据不同的情况执行不同的代码分支。其语法结构为: ```c switch (表达式) { case 值1: 代码块1;

break; case 值2: 代码块2; break; ... default: 默认代码块; break; } ``` switch语句与if语句的异同点如下: - 相同点:都用于根据条件执行不同的代码分支; - 不同点: 1)switch语句的条件表达式只能是整型或字符型,而if语句的条件表达式可以是任意的关系表达式; 2)switch语句针对的是多个离散的取值,if语句则根据条件的真假执行对应的代码; 3)switch语句执行完一个匹配的分支后会跳出整个switch语句,而if语句在执行条件为真的分支后会继续执行后续的代码。

4. 请写出一个函数,实现将字符串中的大写字母转换为小写字母的功能。 答案:示例代码如下: ```c void convertToLower(char *str) { int i; for (i = 0; str[i] != '\0'; i++) { if (str[i] >= 'A' && str[i] <= 'Z') { str[i] += 'a' - 'A'; } } } // 使用示例: int main() { char str[] = "Hello World";

C语言程序设计习题大全(附答案)

C语言基础一: 1.下列四组选项中,均不是C语言关健字的选项是( A )。 A) define B) gect C) include D) while IF char scanf go type printf case pow 2.下面四个选项中,均是合法整型常量的选项是( A )。 A)160 B)-0xcdf C) -01 D)-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x <<02>>B>>2 3.下面四个选项中,均是不合法的转义符的选项是( B )。 A) '\"' B) '\1011' C) '\011' D) '\abc' '\\' '\' '\f' '\101' 'xf' '\A' '\}' 'x1f' 4.下面不正确的字符串常量是( A )。 A)'abc' B)"12'12" C)"0" D)" " 5.以下选项中不合法的用户标识符是( A )。 A)abc.c B)file C)Main D)PRINT 6.C语言提供的合法关键字是( D )。 A) swith B) cher C) Case ).Default 7.下列标识符组中,合法的用户标识符为 A A)_0123与ssiped B)del-word与signed C)list与*jer D) keep%与wind 8.在C语言中,逻辑值"真"的表示是用( C )。 A) true B) 整型值0 C)非另整型值D) T 9若有以下定义 char s='\092'; 则该语句( B ) A)使s的值包含一个字符B)定义不合法,s的值不确定 C)使s的值包含4个字符D)使s的值包含3个字符 10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。 A)1 B)2 C)8 D)4 11已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为( A )。 A)D B)68 C)不确定的值D)C 12逻辑运算符两侧运算对象的数据类型是( D )。 A) 只是0或1 B) 只能是0或非0正数 C) 只能是整型或字符型数据D) 可以是任何合法的类型数据 13TURBO C中int类型变量所占字节数是( B )。

C语言程序设计题库及答案

第1次客观题作业 一、单选题(共30题,每题3分) 1 .下面表示正确的是__A___。 A.C语言中的逗号是一种运算符 B.在C语言中,一行只能有一个语句 C.C中的变量不区分大小写 D.c中的关键字可以做为变量名 2 .字符型常量在内存中存放的是__A____代码值。 A.ASCII B.二进制 C.十进制D.八进制 3 .以下不正确的C语言标识符是(C )。 A.AB1 B._ab3 C.4ab D.a2_b 4 .以下运算符中优先级最低的运算符是_D____。 A.&& B.& C.|| D.= 5 .在C语言中,要求运算数必须是整型的运算符是___A___。A.% B./ C.< D.! 6 . C语言程序的基本单位是__C_____。 A.程序行B.语句C.函数D.字符 7 .将高级语言编写的程序翻译成目标程序的是___B____程序。A.解释程序B.编译程序C.汇编程序D.源程序8 .以下选项中,与k=n++完全等价的表达式是__A___。 A.k=n,n=n+1 B.n=n+1,k=n C.k=++n D.k+=n+1 9 .下列(A )不属于结构化程序设计的循环结构。 A.For B.While C.if-else D.do-while

10 .以下叙述中错误的是__A___。 A.用户所定义的标识符允许使用关键字 B.用户所定义的标识符应尽量做到“见名知意 C.用户所定义的标识符必须以字母或下划线开头 D.用户定义的标识符中,大、小写字母代表不同标识 11 .若有输入语句scanf( %d%d%d,&x,&y,&z);则不能使x值为5,y值为6,z值为7的输入是__A____。 A.5,6 ,7 B.5回车换行 6 7 C.5 6 7 D.5,6,7 12 .若i,j已定义为int类型,则下程序段中内循环体的总的执行次数是( B )。 for (i=3;i>0;i--) for (j=0;j<=4;j++){...} A.12 B.15 C.16 D.20 13 .下列选项中,合法的C语言关键字是_D___。 A.VAR B.Cher C.Integer D.default 14 .C语言中___A____。 A.能使用do-while语句构成的循环 B.do-while语句构成的循环必须用break语句才能退出 C.do-while语句构成的循环,当while语句中的表达式为非零时结束循环D.do-while语句构成的循环,当while语句中的表达式值小于零时结束循环15 .以下__D_____不是高级语言。 A.Basic语言 B.C语言 C.JAVA语言 D.汇编语言 16 .已知int x=2,y=3;则计算表达式y+=x-=x*=y后,x和y分别为(B )。 A.6,5 B.0,3 C.0,5 D.-4,2

《C语言》程序设计题库及答案

《C语言》程序设计题及答案1.【程序设计】 -------------------------------------------------- 功能:对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。 例如:原来的字符串为CEAedca,排序后输出为CedcEAa。 ------------------------------------------------*/{ /**********Begin**********/ int i,j; char t; for(i=1;i

for(i=3;i<=n;i=i+3) {t=1; for(j=1;j<=i;j++) t=t*j; s=s+t;} return(s); /********** End **********/ 3./*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。 ------------------------------------------------*/ /**********Begin**********/ int k,s=0; do {s=s+(w%10)*(w%10); w=w/10; }while(w!=0); if(s%5==0)k=1; else k=0; return(k);

c程序设计期中试题及答案

c程序设计期中试题及答案 一、选择题 1. C语言中,下列哪个关键字可以声明常量? A. const B. static C. extern D. volatile 答案:A. const 2. 下列关于指针的说法中,错误的是? A. 指针保存的是变量的地址 B. 指针变量必须在使用之前初始化 C. 指针可以指向一个函数 D. 指针占用的内存空间和指针指向的数据类型有关 答案:B. 指针变量必须在使用之前初始化 3. 下列循环结构中,哪个语句是用于结束当前循环,进入下一轮循环的? A. break B. continue

D. goto 答案:B. continue 4. 下列C语言中的标准库函数中,不属于输入输出函数的是? A. printf() B. scanf() C. gets() D. malloc() 答案:D. malloc() 5. C语言中,以下哪个运算符的优先级最高? A. = B. && C. * D. ?: 答案:D. ?: 二、填空题 1. 编写一个函数,判断一个数是否为质数。函数原型为: int isPrime(int num);

```c int isPrime(int num) { int i; if (num <= 1) { return 0; } for (i = 2; i < num; i++) { if (num % i == 0) { return 0; } } return 1; } ``` 2. 填写以下代码的输出结果:```c #include int main() {

char str[] = "Hello"; printf("%d\n", sizeof(str)); printf("%d\n", strlen(str)); return 0; } ``` 答案: 8 5 三、编程题 1. 编写一个C程序,实现将一个字符串中的小写字母转换为大写字母的功能。要求原字符串不变,结果存放在新的字符串中。函数原型为: void convertToUpper(const char* src, char* dest); 答案: ```c #include #include void convertToUpper(const char* src, char* dest) {

C程序设计题库(含答案)

C程序设计题库(含答案) 一、单项选择题 1.基础知识 1、以下说法中正确的是() A、C语言程序总是从第一个的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义 C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分答案:C 2、下列字符序列中,可用作C标识符的一组字符序列是()。 A)S.b,um,average,_aboveB)cla,day,lotu_1,2dayC)#md,&12某,month,tudent_n!D)D56,r_1_2,name,_t_1答案:D 3、以下标识符中,不能作为合法的C用户定义标识符的是()。 A)a3_b3B)voidC)_123D)IF答案:B 4、设a和b均为double型变量,且a=5. 5、b=2.5,则表达式(int)a+b/b的值是(D)A、6.500000B、6C、5.500000D、6.0000005、以下的选择中,正确的赋值语句是()。 A)a=1,b=2B)j++C)a=b=5;D)y=int(某)答案:C 6、在C语言中,能代表逻辑值“真”的是()。 A)TrueB)大于0的数C)非0整数D)非0的数答案:D 7、下列程序的输出结果是()。main()

{charc1=97,c2=98;printf(\} A)9798B)97bC)a98D)ab答案:B 8、执行下列语句后变量某和y的值是()。y=10;某=y++; A)某=10,y=10B)某=11,y=11C)某=10,y=11D)某=11,y=10答案:C 9、设a=12,且a定义为整型变量。执行语句a+=a-=a某=a;后a的 值为()。A)12B)144C)0D)132答案:C A)1990B)1992C)1996D)2000答案:A 11、下列程序的输出结果是()。main() {inta=7,b=5; printf(\} A)0B)5C)1D)不确定值答案:A 12.以下关于运算符优先顺序的描述中正确的是()。A)关系运算符 13、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是() A、canf(\ B、canf(\、canf(\D、canf(\答案:C 14有以下程序#includemain() {charc1,c2; c1=A+8-4;c2=A+8-5; printf(“%c,%d\\n”,c1,c2);}

C语言程序设计考试试题(附答案)

C语言程序设计考试试题(附答案) C语言程序设计考试试题(附答案) 一、选择题(共30题,每题2分,共60分) 1. 下列哪个是C语言关键字? A. print B. variable C. while D. calculate 答案:C 2. 在C语言中,下列哪个是合法的变量名? A. 1_hello B. _world C. v-ariable D. continue 答案:B 3. 下列哪个是正确的C语言注释方式? A. // This is a comment B. # This is a comment

C. /* This is a comment */ D. 答案:C 4. 下列哪个是正确的C语言函数定义格式? A. void addNumbers() B. addNumbers() C. function addNumbers() D. int addNumbers() 答案:D 5. 执行下面的C语言代码,输出的结果是什么?```c #include int main() { int x = 5; int y = 2; float result = x / y; printf("%f", result); return 0;

} ``` A. 2.5 B. 2 C. 2.000000 D. 5 答案:B 6. 在C语言中,下列哪个是正确的if语句格式? A. if (x > 4) then B. if (x > 4) { } C. if x > 4 D. if (x > 4) 答案:D 7. 下列哪个是C语言中的逻辑运算符? A. ++ B. && C. % D. = 答案:B

C语言程序设计试题附答案3篇

C语言程序设计试题附答案3篇 C语言程序设计试题附答案1 1. 用C语言编写的代码程序( B ) A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行 2. C语言中用于结构化程序设计的三种基本结构是( A ) A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue 3. 以下定义语句中正确的是( C ) A)char a='A'b='B'; B float a=b=10.0;C)int a=10,b= D)float a,b= 4.下列选项中,不能用作标识符的是( D ) A)_1234_ B)_1_2 C) int_2_ D)2_int_ 5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 ( B ) A)称为函数的直接递归调用 B)称为函数的间接递归调用 C)称为函数的循环调用 D)C语言中不允许这样的递归调用 6.以下叙述中正确的是 ( A ) A)局部变量说明为static存储类,其生存期将得到延长 B)全局变量说明为static存储类,其作用域将被扩大 C)任何存储类的变量在未赋初值时,其值都是不确定的

D)形参可以使用的存储类说明符与局部变量完全相同 7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B) A)for(i=1,p=1;i=0_______;i--) {if(____i%17==0____④________) break;} printf("%d\n",__⑤_i____); } 3.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。 main() { int i,a[20],sum,count; sum=count=0; for(i=0;i0) ?? { count++; ?? sum+= _a[i]__③___ ; ?? } ? } printf("sum=%d,count=%d\n",__sum④___,__⑤__count___); } 4.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。请填空。 int fun( int n)

C程序设计(编程理论基础)习题与答案

1、下列计算机语言中,CPU能直接识别的是 A.自然语言 B.高级语言 C.机器语言 D.汇编语言 正确答案:C 2、可移植性最好的计算机语言是∶ A.自然语言 B.汇编语言 C.机器语言 D.高级语言 正确答案:D 3、要把高级语言编写的源程序转换为目标程序,需要使用 A.编辑程序 B.编译程序和解释程序 C.驱动程序 D.诊断程序 正确答案:B 4、计算机语言有许多种,其中与硬件直接相关的是 A.机器语言 B.自然语言 C.高级语言 D.网络语言

5、计算机算法指的是 A.计算方法 B.解决问题的有限运算序列 C.调度方法 D.排序方法 正确答案:B 6、计算机算法必须具备输入、输出和()等5个特性。 A.可行性、确定性和有穷性 B. 确定性、有穷性和稳定性 C.易读性、稳定性和安全性 D.可行性、可移植性和可扩充性 正确答案:A 7、结构化程序设计所规定的三种基本控制结构是()。 A.主程序、子程序、函数 B.树形、网形、环形 C.顺序、选择、循环 D. 输入、处理、输出 正确答案:C 8、下面选项中不属于面向对象程序设计特征的是()。 A.多态性 B.继承性 C. 类比性 D.封装性

9、结构化程序设计的主要特征是 A. 继承和重用 B.封装和数据隐藏 C.把数据和处理数据的过程看成一个整体 D. 数据和处理数据的过程分离 正确答案:D 10、面向对象程序设计将数据与()放在一起,作为一个互相依存、不可分割的整体来处理。 A.对数据的操作 B.信息 C. 数据抽象 D.数据隐藏 正确答案:A 11、以下叙述中正确的是 A.C语言出现的最晚,具有其他语言的一切优点 B.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 C. C语言可以不用编译就能被计算机识别执行 D.C语言比其他语言高级 正确答案:B 12、以下叙述中正确的是()。 A.分号是C语句之间的分隔符,不是语句的一部分 B.花括号"{"和"}"只能作为函数体的定界符 C.构成C程序的基本单位是函数,所有函数名都可以由用户命名

c语言程序设计基础试题及答案(一)

c语言程序设计基础试题及答案(一) C语言程序设计是计算机科学与技术中非常重要的一门课程,而对于初学者来说,基础的试题训练是必不可少的。下面,我们就来介绍一些C 语言程序设计基础试题及答案。 一、基础语法试题 1. 下列标识符不正确的是: (A)int (B)enum (C)233g (D)gf_cxy 答案:(C)233g 2. 下面哪条语句不正确: (A)i++; (B)i+=3; (C)a[i] = i; (D)十六进制数:0x16。 答案:(A)i++; 3. 下面哪条语句不正确: (A)if(a==b) (B)for(i=1; i<=10; i++) (C)return 0; (D)while(a=b)

答案:(D)while(a=b) 4. 下列不是C语言关键字的是: (A)if (B)while (C)while_if (D)return 答案:(C)while_if 二、数组及指针试题 1. 给定以下程序: int b[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *p = b+3; printf("%d", *(p+2)); 输出结果是: (A)5 (B)8 (C)7 (D)6 答案:(B)8 2. 下面程序的输出结果是什么: int a[] = {1, 2, 3, 4, 5, 6};

int *p1 = (int *)(&a+1); int *p2 = (int *)((int)a+1); printf("%x,%x", *p1, *p2); (A) 1000,2000 (B) 6000,2001 (C) 2000,2001 (D) 6000,2000 答案:(D) 6000,2000 三、函数及文件操作试题 1. 下面程序的输出结果是什么: #include void fun(int, char *); int main() { char s[] = "Keeshawn"; fun(8, s+2); return 0; } void fun(int n, char *p) { if(n<=0) return; fun(n-1, p+1); putchar(*p); }

C语言程序设计习题集及参考答案

C语言程序设计习题集及参考答案 C语言程序设计习题集及参考答案 一、简介 C语言是一种广泛使用的程序设计语言,它具有高效、灵活和易于维护的特点。在学习C语言的过程中,通过练习题的方式可以帮助我们加深对语言的理解和应用。本文将提供一些C语言的练习题,并给出参考答案,以帮助读者巩固所学知识。 二、习题集 1、选择题 (1) C语言中的基本数据类型包括哪些? A. int, float, char B. int, float, double C. char, float, double D. int, float, boolean (2) 下列哪个标识符是合法的C语言变量名? A. 123 B. _abc C. ab-c D. a bc (3) 下面哪个运算符的优先级最高? A. + B. && C. ++ D. ! 2、填空题 (1) 在C语言中,整数的默认存储类型是____________。 (2) 写出 计算a和b的最大值的表达式:max = a ______ b; (3) 写出判断一

个数是否为偶数的表达式:num % ______ == 0。 3、编程题 (1) 编写一个程序,输出1到10之间的所有奇数和偶数。 (2) 编写一个程序,判断一个整数是否为素数。如果是素数,输出"Yes",否则输出"No"。 (3) 编写一个程序,输入一个字符串,然后将字符串中的所有字母转换为大写。 三、参考答案 1、选择题 (1) C语言中的基本数据类型包括int、float和char,因此答案为A。 (2) 在C语言中,合法的标识符不能以数字开头,不能包含特殊字符和空格,因此选项A和C是错误的。选项B中使用下划线作为变量名的一部分是合法的,因此是正确的选项。选项D中的a和bc之间没有分隔符,不符合标识符的命名规则,因此也是错误的。因此,答案为B。 (3) 在C语言中,运算符的优先级从高到低依次为:()、[]、.&、!、++、--、~、* &、+ -、% 、/ %、<< >>、< > <= >= 、== !=、& ^ |、&& ||以及所有的逻辑运算符。因此,选项C的++运算符优先级最高,答案为C。

C语言程序设计(判断题专项练习)及答案

计算机C语言(判断题专项练习)及答案(一) 一、基础知识(每小题1 分,共 10分) ()1、程序调试就是找出并改正c源程序中的语法错误。 ()2、一个变量的数据类型被强制转换后,它将保持被强制转换后的数据类型。 ()3、在标准c语言中,共用体变量中的各成员是共同占用一块存储空间 ()4、赋值运算符的结合方向为自右向左。 ()5、c语言的标识符由字母、数字和下划线组成,其中第一个字符必须是字母或下划线。 ()6、在c程序中, aph和Aph 是两个相同的变量 ()7、计算机语言(computer language)是人与计算机之间通讯的语言。 ()8、在c语言中,当一个逻辑表达式的值为"假"时,该表达式的值一定是 0 ()9、在c程序中,abc与ABC是两个相同的变量。 ()10、c语言中sizeof 是函数,而不是运算符。 二、控制结构(每小题1 分,共 10分) ()1、if 语句后面的表达式只能是关系表达式 ()2、在switch语句中,可以根据需要使用或不使用break语句。 ()3、在标准c中,逻辑表达式中只允许出现逻辑型数据。 ()4、逻辑表达式的值只能为1或0。 ()5、c程序中if语句可以单独存在。 ()6、省略else的if语句的一般形式如下,若表达式的值为"真",则执行语句1; 否则,就什么也不做。if (表达式) 语句1 ()7、在if语句中,必须出现else。 ()8、内层break语句可以终止嵌套的switch,使最外层的switch结束。

()9、switch语句中的default必须出现在所有case之后。 ()10、switch语句中,每一个case的冒号后面都必须至少跟有一条语句。三、循环结构(每小题1 分,共 10分) ()1、for循环的三个表达式可以任意省略,while,do-while也是如此。 ()2、选择结构( if 语句)和循环结构都可以使用嵌套形式 ()3、在循环过程中,使用break语句和continue语句的作用是一样的 ()4、无论哪种循环语句,都必须给出循环结束条件。 ()5、break 语句不能够单独使用,只能用于循环语句和switch 语句 ()6、break是跳出当前循环,接着执行循环后面的代码。 ()7、break语句可用于循环体内,它将退出该重循环。 ()8、若有 int k = 1; while(k=1) k++ ; 则while 循环执行的次数是1 次 ()9、do-while循环的while后的分号可以省略。 ()10、do-while 语句构成的循环至少执行一次 四、数组/指针数组(每小题1 分,共 10分) ()1、在定义二维数组时,可以将该数组的两个维数全部省略 ()2、对于已正确定义的二维数组a, *(a[i]+j)与a[i][j]的含义相同。 ()3、数组名是一个指针,它可以指向数组中的任何元素。 ()4、一维数组指的是只有一个下标的数组,用来表示一组具有相同类型的数据。()5、在标准c语言中,二维数组在内存中的存放次序是以行序为主序。 ()6、在定义数组时,什么时候都不可以将该数组的维数省略。 ()7、在定义数组时,有时可以将该数组的维数省略。 ()8、定义二维数组时,如果对全部元素赋初值,则可以省略行数。

C语言编程题及答案

) (*)(*)(*c s b s a s s ---C 语言编程题 1.(*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21...... 前20项的和。 main() {float i=1,j=2,t=0,s,n,m; for(n=1;n<=20;n++) s=i/j,m=i,i=j,j=m+j,t=t+s; printf("t=%f",t); } 2.(*)从键盘输入一个字符串,再将其逆序输出。(如:输入abcde ,输出edcba ) main() {int i; char c[10]; scanf("%s",c); for(i=9;i>=0;i--) printf("%c",c[i]); } 3.(*)已知abc+cba=1333,其中a 、b 、c 均为一位数,例如:617+716=1333, 518+815=1333, 试编程求出符合这一规律的a 、b 、c ,并输出结果。 main() {int a,b,c,x,y; for(a=1;a<=9;a++) for(b=0;b<=9;b++) for(c=1;c<=9;c++) { x=100*a+10*b+c; y=100*c+10*b+a; if(x+y==1333) printf("x=%d,y=%d",x,y);} } 4.(*)利用海伦公式求三角形面积,三边长a,b,c 由键盘输入。若输入的三边长不能构成 三角形,输出相应提示信息。海伦公式如下:其中s=(a+b+c)/2 三角形面积= #include"math.h" main() { float a,b,c,s,area; scanf("%f,%f,%f",&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); if(a+b>c&&a+c>b&&b+c>a) printf("area=%f",area);

C语言程序设计练习题(含程序及参考答案)

1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c 能构成等边三角形函数返回3,若能构成等腰返回2,一般三角形返回1,若不克不及构成三角形返回0.之袁州冬雪创作 #include int fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c) return 3; else if(a==b||b==c||a==c) return 2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf("\nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape : %d\n",shape); } 2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b 中的值原为8,程序运行后 a 中的值为8,b中的值为3. #include void fun(int *x,int *y) { int t; t=*x;*x=*y;*y=t

} void main() { int a=3,b=8; printf("%d %d\n",a,b); fun(&a,b); printf("%d %d\n",a,b); } 3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中. 例如,输入的数为:55 12 34, 输出成果应当是:. #include void fun(float *p,float *q,float *s) { float k; if (*p<*q) { k=*p;*p=*q;*q=k;} if (*q<*s) { k=*s;*s=*p;*p=k;} if (*p<*q) { k=*p;*p=*q;*q=k;} } void main() { float a,b,c; printf("Input a b c: "); scanf("%f%f%f",&a,&b,&c); printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c); fun(&a,&b,&c); printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c); } 4、编写函数fun(int n),它的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回.例如:n=120时,函数值为239. #include

C语言程序设计复习题(含答案)

C\C++程序设计复习题及答案 一、选择题 1、一个C语言程序总是从(C )开始执行 A) 书写顺序的第一个函数 B) 书写顺序的第一条执行语句 C) 主函数main() D) 不确定 2、以下能正确定义二维数组的是( ) A.int a[][3]; B.int a[][3]=2{2*3}; C.int a[][3]={}; D.int a[2][3]={{1},{2},{3,4}}; 3、设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D ) A) ‘x’&&’y’B) x||y+z&&y-z C) x<=y D) !((x

8、在执行char str[10]=“china\0”; strlen(str)的结果是 ( A ) A)5 B) 6 D) 7 D 9 9、若有定义,char *p=”computer”; 则语句printf(“%c”,*(p+2))运行结果是 ( B ) A) 随机值B) m C)o D) omputer 10、有以下程序 ( ) main() { int i=0,x=0; for (;;) { if(i==3||i==5) continue; if (i==6) break; i++; s+=i; }; printf("%d\n",s); } 程序运行后的输出结果是 A.10 B.13 C.21 D.程序进入死循环 11、以下定义语句中正确的是( ) A.char a='A'b='B'; B.float a=b=10.0; C.int a=10,*b=&a; D.float *a,b=&a; 12、设有int x=11;则表达式(x++*l/3)的值为()。 (A)3 (B)4 (C)11 (D)12 13、在说明一个结构体变量时系统分配给它的存储空间是( D ) A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间 C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和

C语言程序设计(编程题专项练习)及答案

C语言程序设计(编程题专项练习)及答案 一、组数,指针,字符串编程题(每小题5 分,共 10分) 1、编写程序:输入一个百分制成绩,打印出五级记分成绩。考试成绩在 90 分或 90 分以上为优秀, 80 ~ 89 分为良好, 70 ~ 79 为中等, 60 ~ 69 为及格,低于 60 分为不及格。 2、编写程序:求一个3*3矩阵对角线元素之和 3、编写程序:在第一个循环中给a数组的前10个数组元素依次赋1,2..9; 在第二个循环中使a数组前10个元素中的值按逆序存放,变成9,8..1; 在最后一个循环中输出逆序存放以后的a数组前10个元素 4、编写程序:判断一个素数能被几个连续的9整除,比如: 请输入一个素数: 13 素数13能整除6个9组成的数整除 5、编写程序:输出 200 ~ 300 之间的所有素数,要求每行输出 8 个素数。 6、编写程序:判断101到200之间的素数。 7、编写程序:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 8、编写程序,使用循环结构输出下列图形: 9、编写程序:假设奖金税率如下(a代表奖金,r代表税率) 500<=a<1000 r=5% 1000<=a<2000 r=8% 2000<=a<3000 r=10% 3000<=a r=15%输入的一个奖金数,求税率和应缴税款以及实得的奖金数(扣除奖金税后)。 10、编写程序:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 11、编写程序:若有数组:int a[2][3] ={{1,2,3},{4,5,6}}; 现要将a的行和列的元素互换后存到另一个二维数组b中,并以矩阵形式输出数组b。试编程。

C语言程序设计(选择题专项练习)及答案

C语言程序设计(选择题专项练习)及答案 一、理论基础(每小题1 分,共 20分) 1、设x,y,z,s均为int型变量,且初值均为1,则执行语句s=++x||++y&&++z后,则s的值为: A、不定值 B、2 C、1 D、0 2、下列选项不符合良好程序设计风格的是________。 A、源程序要文档化 B、数据说明的次序要规范化 C、避免滥用goto语句 D、模块设计原则是高耦合、高内聚 3、变量的指针,其含义是指该变量的________。 A、值 B、地址 C、名 D、一个标志 4、若变量a、i已正确定义,且i已正确赋值合法的语句是________。 A、a==1 B、++i C、a=a++=5 D、a=int(i) 5、以下关于注释的叙述中错误的是________。 A、注释的边界符号“/”和“*”之间不允许加入空格 B、C 语言允许注释出现在程序中任意合适的地方 C、注释的内容仅用于阅读,对程序的运行不起作用 D、注释的边界符号“/*”和“*/”必须成对出现且可以嵌套 6、c 语言共用体类型变量在程序运行期间。 A、所有成员一直驻留在内存中 B、只有一个成员驻留在内存中 C、部分成员驻留在在内存中 D、没有成员驻留在内存中 7、在c语言中,能代表逻辑值"真"的是________。 A、True B、大于0的数

C、非0整数 D、非0的数 8、以下选项中属于c语言的数据类型是________。 A、复合型 B、双精度型 C、逻辑型 D、集合型 9、下列关于八进制与十六进制的描述中,错误的是________。 A、八进制是一种逢八进一的机制 B、八进制由0-8这此符号来描述 C、十六进制是一种逢十六进一的机制 D、十六进制由0-9、A-F这些符号来描述 10、以下叙述中不正确的是________。 A、预处理命令行都必须以#号开始 B、在程序中凡是以#号开始的语句行都是预处理命令行 C、C程序在执行过程中对预处理命令行进行处理 D、以下是正确的宏定义#define IBM_PC 11、下列错误的是________。 A、char s[]="China"; B、char s[10]={"China"}; C、char s[10];s="China"; D、char s[10]={'c','h','i','n','a'}; 12、以下合法的赋值语句是______。 A、X=Y=100 B、D-; C、X+Y; D、C=int(A+B) 13、若变量已正确定义为float型,要通过输入语句:scanf("%f%f% f",&a,&b,&c);给a赋值11.0,b赋值22.0,e赋值33.0,不正确的输入形式是________。 A、11 22 33 B、11.0,22.0,33.0 C、11.0 22.0 33.0 D、1122 14、下列四组常数中,均是合法整型常量的一组是________。 A、160 0xffff 011 B、-0xcdf 01a 0xe C、-01 986,012 0668 D、-0x48a 2e5 0x

相关主题
相关文档
最新文档