c语言答案(c语言编程题目及答案)

中国机械与配件网1600

大家好,今天来为大家解答c语言答案这个问题的一些问题点,包括c语言编程题目及答案也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

C语言答案

c语言答案(c语言编程题目及答案)

C语言程序设计复习:

1、理解以下术语的含义:数组、函数、地址指针指针变量直接访问间接访问、结构体

2、用起泡法对10个数由小到大排序(P134例题)

5、输入10个学生的成绩,分别用函数实现下列功能:

1)计算所有学生的平均分;

2)计算学生成绩中最高分;

3)计算学生成绩中最低分;

4)统计及格学生人数;

5)查找成绩为指定成绩(如90)记录,如果没有,请给出提示,如果有,请统计满足条件的记录数。

6、有一个已经排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。(P153习题7.4)

7、编写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字字符间空一个空格。如输入1990,应输出“1990”。(要求用函数)(P202习题8.8)

8、编写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。(要求用指针,不能使用strlen()函数)(P279习题10.6)

9、编写一个程序,打入月份号,输出该月的英文月名。例如,输入“3”则输出“March”(要求用指针数组)。(P279习题10.18)

10、将一个数组中的值按逆序重新存放。例如,输入的数组顺序为8,6,5,4,1,要求改为1,4,5,6,8。(P153习题7.5)

11、编写一个函数用“起泡法”对输入的10个字符按由小到大顺序排序(要用函数)。(P202习题8.11)

12、将数组a中n个整数按相反顺序存放(要用函数)。(P237例题10.7)

13、输入一行文字,找出其中大写字母、小写字母、空格、数字及其他字符各有多少。(要求用指针实现)(P279习题10.8)

14、编写一个函数,将两个字符串连接(要用自定义函数,不能用strcat函数)。(P202习题8.6)

15、输入3个字符串,按照由小到大的顺序输出。(要求用指针)(P278习题10.2)

16、输入10整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数:1、输入10个数;2、进行处理;3、输出10个数(数据对换要求用指针实现)(P278习题10.3)

参考答案:

2、用起泡法对10个数由小到大排序

#include<stdio.h>

voidmain()

{inta[10];inti,j,t;

printf("input10numbers:\n");

for(i=0;i<10;i++)

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

printf(“\n");

for(j=0;j<9;j++)

for(i=0;i<10-j;i++)

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

printf("thesortednumbers:\n");

for(i=0;i<10;i++)

printf(“%d“,a[i]);

}

3、用递归方法求n阶勒让德多项式的值,递归公式为(要求用函数):(P202习题8.13)

pn(x)=1n=0

xn=1

((2n-1)*x-pn-1(x)-(n-1)*pn-2(x)/nn>1

3、#include<stdio.h>

voidmain()

{

intx,n;

floatp(int,int);

printf(“inputn&x:”);

scanf(“%d,%d”,&n,&x);

printf(“n=%d,x=%d\n”,n,x);

printf(“P%d(%d)=%6.2f\n”,n,x,p(n,x));

}

floatp(intn,intx)

{

if(n==0)

return1;

elseif(n==1)

returnx;

else

return((2*n-1)*x*p((n-1),x)-(n-1)*p((n-2),x))/n;

}

4、输入3个整数,按由小到大的顺序输出(要求用指针类型)(P228例题)

4、输入3个整数,按由小到大的顺序输出(要求用指针类型)

#include<stdio.h>

voidmain()

{

voidsort(int*a,int*b,int*c);

inta,b,c;

scanf("%d%d%d",&a,&b,&c);

sort(&a,&b,&c);

printf("a=%d,b=%d,c=%d\n",a,b,c);

}

voidsort(int*a,int*b,int*c)

{

inttmp;

if(*a>*b)

{

tmp=*a;

*a=*b;

*b=tmp;

}

if(*a>*c)

{

tmp=*a;

*a=*c;

*c=tmp;

}

if(*b>*c)

{

tmp=*b;

*b=*c;

*c=tmp;

}

}

5、输入10个学生的成绩,分别用函数实现下列功能:

1)计算所有学生的平均分;

6)计算学生成绩中最高分;

7)计算学生成绩中最低分;

8)统计及格学生人数;

9)查找成绩为指定成绩(如90)记录,如果没有,请给出提示,如果有,请统计满足条件的记录数。

#include<stdio.h>

voidmain()

{

intaverage(inta[]);

intmax(inta[]);

intmin(inta[]);

intpass(inta[]);

intsearch(inta[],intg);

inti,j,g;

intscore[10],aver,m1,m2,p,s;

printf("Pleaseinput10scores:\n");

for(i=0;i<10;i++)

scanf("%d",&score[i]);

printf("\n");

aver=average(score);

m1=max(score);

m2=min(score);

p=pass(score);

printf("平均分为:%d\n",aver);

printf("最高分为:%d\n",m1);

printf("最低分为:%d\n",m2);

printf("及格人数为:%d\n",p);

printf("需要查找吗?\n");

printf("输入1继续查找,输入0退出(1/0):");

scanf("%d",&j);

if(j==1)

{

printf("请输入要查找的分数:\n");

scanf("%d",&g);

s=search(score,g);

if(s==0)

printf("没有满足条件的记录");

else

printf("成绩为%d的学生共有%d名\n",g,s);

}

}

intaverage(inta[])

{

inti;

intaver,sum=a[0];

for(i=1;i<10;i++)

sum=sum+a[i];

aver=sum/10;

returnaver;

}

intmax(inta[])

{

inti;

intm=a[0];

for(i=1;i<10;i++)

if(m<a[i])

m=a[i];

returnm;

}

intmin(inta[])

{

inti;

intm=a[0];

for(i=1;i<10;i++)

if(m>a[i])

m=a[i];

returnm;

}

intpass(inta[])

{

inti;

ints=0;

for(i=0;i<10;i++)

if(a[i]>=60)

s++;

returns;

}

intsearch(inta[],intg)

{

inti;

ints=0;

for(i=0;i<10;i++)

if(a[i]==g)

s++;

returns;

}

6、已有一个已排好次序的数组,要求输入一个数后,按原先排序的规律将它插入数组中。

Voidmain()

;

inttemp1,temp2,number,end,i,j;

printf("初始数组如下:");

for(i=0;i<10;i++)

printf("%5d",a[i]);

printf("\n");

printf("输入插入数据:");

scanf("%d",&number);

end=a[9];

if(number>end)

a[10]=number;

else

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

{if(a[i]>number)

{temp1=a[i];

a[i]=number;

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

{temp2=a[j];

a[j]=temp1;

temp1=temp2;

}

break;

}

}

}

for(i=0;i<11;i++)

printf("a%6d",a[i]);

}

7、编写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字字符间空一个空格。如输入1990,应输出“1990”。

#include<iostream>

voidmain()

{

voidstradd(charstr[]);

charstr[80];

printf("输入一串数字\n\n");

gets(str);

stradd(str);

printf("\n\n加空格后的字符串\n\n");

puts(str);

}

voidstradd(charstr[])

{

chara[80];

inti=0,j;

for(j=0;str[j]!='\0';j++)

{

a[i]=str[j];

a[i+1]='';

i+=2;

}

a[i]='\0';

for(i=0;a[i]!='\0';i++)

{

str[i]=a[i];

}

str[i]='\0';

}

8、编写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。(要求用指针实现)

#include"stdio.h"

intstringlength(char*str)

{intn;

n=0;

While(*str!=0)

{n++;

str++;

}

Return(n);

}

intmain()

{

charstr〔100〕,

intlen,

printf("Pleaseinputastring:"),

scanf("%s".str),

len=stringlength(str),

printf("Thestring’slengthis%d.".len),

return0;

}

9、编写一个程序,打入月份号,输出该月的英文月名n。例如,输入“3”则输出“March”,要求用指针数组处理。

#include<stdio.h>

main()

{char*month_name[13]={"illegalmonth","January","February","March","April",

"May","June","July","August","September","October","November","December"};

intn;

printf("Inputmonth:");

scanf("%d",&n);

if((n<=12)&&(n>=1))

printf("Itis%s.\n",*(month_name+n));

else

printf("Itiswrong.\n");

}

10、将一个数组中的值按逆序重新存放。例如,输入的数组顺序为8,6,5,4,1,要求改为1,4,5,6,8。

#include<stdio.h>

#defineN5;

voidmain()

{

inta[N],i,temp;

printf(“enterarraya:\n”);

for(i=0;i<N;i++)

scanf(“%d”,&a[i]);

printf(“arraya:\n”);

for(i=0;i<N;i++)

printf(“\nNow,arraya:\n”);

for(i=0;i<N;i++)

printf(“%4d”,a[i]);

printf(“\n”);

}

11、编写一个函数用“起泡法”对输入的10个字符按由小到大顺序排序(要用函数)。

#include<stdio.h>

voidmain()

{charstr[80];

voidsort(charstr[]);

printf("输入一个字符串\n\n");

gets(str);

sort(str);

printf("\n\n字符由小到大排序为:\n\n");

puts(str);

}

voidsort(charstr[])

{inti,j;

chartemp;

for(i=0;i<strlen(str);i++)

{

for(j=0;j<strlen(str)-i-1;j++)

{

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

{

temp=str[j];

str[j]=str[j+1];

str[j+1]=temp;

}

}

}

}

12、将数组a中n个整数按相反顺序存放(要用函数)。

#include<stdio.h>

voidinv(intx[],intn)/*形参x是数组名*/

inttemp,i,j,m=(n-1)/2;

for(i=0;i<=m;i++)

{j=n-1-i;

temp=x[i];x[i]=x[j];x[j]=temp;}

return;

voidmain()

{inti,a[10]={3,7,9,11,0,6,7,5,4,2};

printf(“转换前的数组为:\n");

for(i=0;i<10;i++)

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

printf("\n");

inv(a,10);

printf(“转换后的数组为:\n");

for(i=0;i<10;i++)

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

printf("\n");

13、输入一行文字,找出期中大写字母、小写字母、空格、数字及其他字符各有多少?(要求用指针实现)

#include<stdio.h>

#include<string.h>

intmain()

{

charstr[40];//创建字符串数组

intcount[5]=;//创建计数器数组并初始化

printf("Pleaseinputastring.\n");

scanf("%s",str);

char*p=str;//指针p指向字符串数组str

intn=strlen(str);//确定输入字符串的长度

for(inti=0;i<n;i++)

{

if(*(p+i)>='A'&&*(p+i)<='Z')

{

count[0]++;//统计大写字母数目

}

elseif(*(p+i)>='a'&&*(p+i)<='z')

{

count[1]++;//统计小写字母数目

}

elseif(*(p+i)>='0'&&*(p+i)<='9')

{

count[2]++;//统计数字数目

}

elseif(*(p+i)=='')

{

count[3]++;//统计空格数目

}

else

{

count[4]++;//统计其他字符数目

}

}

printf("大写字母小写字母数字空格其他字符:\n");

for(i=0;i<5;i++)

{

printf("%d\t",count[i]);//打印各统计数目

}

printf("\n\n");

return0;

}

14、编写一个函数,将两个字符串连接。

#include<stdio.h>

#include<string.h>

voidconcatenate(charstring1[],charstring2[],charstring[])

{

inti,j;

for(i=0;string1[i]!=’\0’;i++)

string[i]=string1[i];

for(j=0;string2[j]!=’\0’;j++)

string[i+j]=string2[j];

string[i+j]=’\0’;

}

voidmain()

{

chars1[100],s2[100],s[100];

printf(“inputstring1:”);

scanf(“%s”,s1);

printf(“inputstring2:”);

scanf(“%s”,s2);

concatenate(s1,s2,s)

printf(“thenewstringis%s”,s);

}

15、输入3个字符串,按照由小到大的顺序输出。(要求用指针实现)

#include<stdio.h>

voidmain()

{

voidsort(int*a,int*b,int*c);

inta,b,c;

scanf("%d%d%d",&a,&b,&c);

sort(&a,&b,&c);

printf("a=%d,b=%d,c=%d\n",a,b,c);

}

voidsort(int*a,int*b,int*c)

{

inttmp;

if(*a>*b)

{

tmp=*a;

*a=*b;

*b=tmp;

}

if(*a>*c)

{

tmp=*a;

*a=*c;

*c=tmp;

}

if(*b>*c)

{

tmp=*b;

*b=*c;

*c=tmp;

}

}

16、输入10整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数:1、输入10个数;2、进行处理;3、输出10个数(数据对换要求用指针实现)

#include<stdio.h>

voidinput(intnumber[])

{

IntI;

Printf(“input10numbers:”);

For(i=0;i<10;i++)

Scanf(“%d”,&number[i]);

}

voidmax_min_value(intnumber[])

{

int*max,*min,*p,temp;

max=min=number;

For(p=number+1;p<number+10;p++)

if(*p>*max)

max=p;

elseif(*p<*min)

min=p;

temp=number[0];number[0]=*min;*min=temp;

if(max=number)max=min;

temp=number[9];number[9]=*max;*max=temp;

}

voidoutput(intnumber[])

{

int*p;

printf(“Now,theyare:“);

for(p=number;p<number+10;p++)

Printf(“%d”,*p);

printf(“\n”);

}

voidmain()

{

intnumber[10];

input(number);

max_min_value(number);

output(number);

}

c语言编程题目及答案

#include<stdio.h>

#include<math.h>

voidmain(void)

{

doublea;

doubleb;

doublec;/*以上三个变量分别对应三边*/

doublesin_c;/*c边对应角的正玄值*/

doublecos_c;/*c边对应角的余玄值*/

doublecos_a;

doublearea;/*三角形的面积*/

printf("输入a,b,c:");

scanf("%lf,%lf,%lf",&a,&b,&c);

if(((a+b)>c)&&(a-b)<c)

{

printf("三边能够成三角形\n.");

cos_c=(a*a+b*b-c*c)/(2*a*b);

cos_a=(b*b+c*c-a*a)/(2*b*c);

if((cos_c>0)&&(cos_a>0))

{

printf("三角形是锐角三角形。\n");

}

elseif((cos_c<0)||(cos_a<0))

{

printf("三角形是钝角三角形\n");

}

else

{

printf("三角形是直角三角形\n");

}

sin_c=sqrt(1-cos_c*cos_c);

area=a*b*sin_c/2;

printf("三角形的面积是%f.\n",area);

}

else

{

printf("三边不能构成三角形\n");

}

}

求一份大一c语言考试试卷,加答案

附件上传失败...

C语言期末考试题及答案(1)

1、构成C语言的基本单位是___B____。

过程?

函数?

语句?

命令?

2、设x为整型变量,不能正确表达数学关系:5<x<10的c语言表达式是__B___。

5

x>5&&x<10?

x==6||x==7||x==8||x==9?

!(x<=5)&&(x<10)?

3、在C语言中,逻辑运算符的优先级从高到低的排列顺序为__D___。

&&、||、!?

||、&&、!?

&&、!、||?

!、&&、||?

4、下面语句中,正确的是__D___。

printf("%c\n","student");?

printf("%c\n","c");?

printf("%s\n",&a);?

printf("%s\n","hello");?

5、对于for(表达式1;;表达式3)可以理解为__B___。

for(表达式1;0;表达式3)?

for(表达式1;1;表达式3)?

for(表达式1;表达式1;表达式3)?

for(表达式1;表达式3;表达式3)?

6、执行下面程序段的结果是__B___。main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d",a,b);}

a=1,b=1?

a=2,b=1?

a=1,b=0?

a=2,b=2?

7、执行下面程序段的结果是__D___。intx=0;do{printf(“%2d”,x--);}while(x);

打印出321?

打印出23?

不打印任何结果?

陷入死循环?

8、设x=10,y=5;z=15,执行下面一段程序后z的结果是__C___。If(x>y)if(y>z)x=y;elsez=y;

7?

6?

5?

4?

9、如果一个函数被说明为static,那么__B___。

该函数只能被main函数调用?

该函数能被当前文件的函数调用,但不能被其他文件的函数调用?

该函数不能被当前文件的函数调用,可以被其他文件的函数调用?

任何文件的函数都可以调用该函数?

10、下面关于局部变量的描述中,错误的是__D___。

函数的局部变量的有效范围只能在本函数?

函数的形式参数也是局部变量?

局部变量的名称不能和函数同名称?

不同的函数中不能定义相同名称的局部变量?

11、下列初始化字符数组的语句中,错误的是__A___。

charstr[5]="hello";?

charstr[]={'h','e','l','l','o','\0'};?

charstr[5]={"hi"};?

charstr[100]="";?

12、引用数组元素时,数组下标可以是__D___。

整型常量?

整型变量?

整型表达式?

以上均可?

13、已知:charstr[10],*p=str;下面的语句中正确的是__B___。

str="ABC";?

p="ABC";?

*str="ABC";?

*p="ABC";?

14、下面语句中,错误的是___D__。

inti;int*p;p=&i;?

inti,*p;p=&a;?

inti,*p=&a;?

inti,*p;*p=i;?

15、下面对于结构体类型的描述正确的是__A___。

结构体类型的大小为各成员变量所占内存的总和?

结构体类型变量与简单数据类型变量的引用规则一致。?

结构体类型的大小为其成员中所占内存空间最大的变量的大小?

结构体类型的大小为其最后一个成员中所占内存空间的大小?

16、C语言规定:在一个源程序中,main函数的位置____C____。

必须在最开始?

必须在系统调用的库函数的后面?

可以任意?

必须在最后?

17、表达式18/4*sqrt(4.0)/8值的数据类型是___C____。

int?

float?

double?

不确定?

18、在c语言中,char型数据在内存中的存储形式是___D___。

补码?

反码?

原码?

ASCII码?

19、阅读以下程序,当输入的数据形式为:25,13,10<CR>时,正确的输出结果为___D___。main(){intx,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%d\n",x+y+z);}

x+y+z=48?

x+y+z=35?

x+z=35?

不能确定?

20、有如下程序voidmain(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf(“%f\n”,y);}该程序的输出结果是(C)。

0.000000?

0.250000?

0.500000?

1.000000?

21、判断char型变量s是否为小写字母的正确表达式是__C____。

'a'<=s<='z'?

(s>='a')&(s<='z')?

(s>='a')&&(s<='z')?

('a'<=s)and('z'>=s)?

22、执行以下语句后,y的值为___A___。intx,y,z;x=y=z=0;++x||++y&&++z;

0?

1?

2?

不确定值?

23、有如下程序段:intnumber=0;while(number++<=3)printf(“%d\n”,number++);则正确的执行结果是___C___。

234?

012?

13?

24?

24、有如下程序voidmain(){intn=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是__B___。

987?

876?

8765?

9876?

25、要使以下程序段输出10个整数,请在空格中填入一个整数。for(i=0;i<=___B___;printf("%d\n",i+=2));

15?

18?

20?

10?

26、设函数fun的定义形式为:fun(charch,floatx){…}则以下对函数fun的调用语句中正确的是___B___。

fun(“abc”,3)?

t=fun(‘D’,5)?

fun(‘ab’,3)?

fun(‘78’,1)?

27、函数求sum(intn)的功能是计算自然数1到n的和,即1+2+…+n。Main(){printf("Thesum=%d\n",sum(10));}intsum(intn){ints=0,i;for(i=0;i<=n;i++)_____B_____}请从备选答案中选择一答案,补全程序。

s=s+n;returns;?

s=s+i;returns;?

returns;?

returns+=I;?

28、设函数fun的定义形式为intfun(inta[],intn){ints=0,i=0;for(i=0;i<n;i++)s+=a[i];returns;}main(){inta[10]={1,2,3,4,5};printf("sum=%d",fun(&a[2],2));}则程序的运行结果为___C___。

3?

5?

7?

9?

29、若有说明:inta[10];则对数组元素的正确引用是___D____。

a[10]?

a[3,5]?

a(5)?

a[10-10]?

30、以下不正确的定义语句是___B___。

doublex[5]={2.0,4,0,6,0,8,0,10.0};?

inty[5]={0,1,3,5,7,9};?

charc1[]={'1','2','3','4','5'};?

charc2[]={'\x10','\xa','\x8'};?

31、下面程序的运行结果是___B____。#include"stdio.h"main(){charstr[]="SWLIA",c;intk;for(k=0;(c=str[k])!='\0';k++){switch(c){case'I':++k;break;c

SWA?

SW*?

SW*A?

SW?

32、以下能正确进行字符串赋值操作的是___D___。

chars[5]={"12345"};?

chars[5]={'1','2','3','4','5',‘6’};?

char*s;*s="12345";?

char*s="12345";?

33、以下程序段的运行结果是___C___。Chara[]="program",*p;p=a;while(*p!='g'){printf("%c",*p-32);p++;}

PROgram?

PROGRAM?

PRO?

proGRAM?

34、若有说明:char*pc[]={"aaa","bbb","ccc","ddd"};,则以下叙述正确的是__C____。

*pc[0]代表的是字符串"aaa"的首地址?

*pc[0]代表的是字符'a'的首地址?

pc[0]代表的是字符串"aaa"的首地址?

pc[0]代表的是字符'a'的首地址?

35、下列程序的运行结果是___B___。#include<stdio.h>#include<string.h>voidf(char*s,intn){chara,*q1,*q2;q1=s;q2=s+n-1;while(q1<q2){a=*q1++;*q1=*q2--;*q2=a;}}main(){charb[]="ABCDEFG";f(b,s

GAGGAGA?

AGAAGAG?

GFEDCBA?

AGADAGA?

36、定义如下的结构体描述同学信息structStudent{unsignedlongid;charname[30];charclass[30];}s;假设此同学的序号为1002,姓名为黎明,班级为冶金3班,则描述正确的为___C__。

id=1002;name=黎明;class=冶金3班;?

id=1002;name=”黎明”;class=”冶金3班”;?

s.id=1002;s.name=”黎明”;s.class=”冶金3班”;?

s.id=1002;s.name=黎明;s.class=冶金3班;?

37、用来描述C程序中注释的是__C___。

//?

?

**?

38、下列变量中合法的定义是__A___。

short_a=2-1?

longif=0xabcL?

double1_d=1.5e2?

floata=1.5e2.7?

39、当c的值不为0时,能够将c的值赋给变量a和b的是__C___

c=b=a?

(a=c)||(b=c)?

(a=c)&&(b=c)?

a=c=b?

40、设有以下程序段,执行后的输出结果是___B__intx=100,y=200;printf("%d",(x,y));

100?

200?

100,200?

编译出错

C语言期末考试题及答案(2)

1、若执行下面的程序时从键盘输入10,则输出是__B__main(){inta;scanf(“%d”,&a);if(a++>10)printf(“%d\n”,++a);elseprintf("%d\n",a--);}

12?

11?

10?

9?

2、执行下面程序段的结果是__D___intx=0;do{printf(“%2d”,x--);}while(x);

打印出321?

打印出23?

不打印任何结果?

陷入死循环?

3、执行与句:for(n=0;n++<4;);后,变量n的值是__C__。

3?

4?

5?

不定?

4、以下关于循环的描述中,错误的是__D___。

可以用for语句实现的循环一定可以用while语句实现?

可以用while语句实现的循环一定可以用for语句实现?

可以用do…while语句实现的循环一定可以用while语句实现?

do…while语句与while语句的区别仅仅是关键字while的位置不同?

5、下面的描述错误的是__C__。

函数可以有多个形式参数?

函数可以没有返回值?

函数内可以嵌套定义函数?

函数可以被其他函数调用?

6、函数返回值的类型是由__A__决定的。

定义函数时指定的返回类型?

函数中return语句的表达式类型?

主调函数的实际参数类型?

主调函数的返回值类型?

7、定义了一维int型数组a[10]后,下面错误的引用是__B__。

a[0]=1;?

a[10]=2;?

a[0]=5*2;?

a[1]=a[2]*a[0];?

8、定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为__B__。

24?

25?

18?

17?

9、下面语句中,错误的是__D__。

inti;int*p;p=&i;?

inti,*p;p=&a;?

inti,*p=&a;?

inti,*p;*p=i;?

10、已知int型二维数组a[3][4],数组元素a[1][2]的地址不能表达为__C__。

&a[1][2]?

a[1]+2?

*a[1]+2?

*(a+1)+2?

11、C语言中,5种基本数据类型的存储空间长度的排列顺序为___A___。

char

char=int

char

char=int=longint<=float

12、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是___B___。

7?

8?

6?

2?

13、若有说明语句:charc='\72';则变量c___A___。

包含1个字符?

包含2个字符?

包含3个字符?

说明不合法,c的值不确定?

14、若x,y均定义为整型,z定义为double型,以下不合法的scanf函数调用语句是___C___。

scanf("%d%lx,%le",&x,&y,&z);?

scanf("%2d*%d%lf",&x,&y,&z);?

scanf("%x%*d%o",&x,&y,&z);?

scanf("%x%o%6.2f",&x,&y,&z);?

15、若输入字符串:abcde<回车>,则以下while循环体将执行___A___次。while((ch=getchar())=='e')printf("*");

1次?

死循环?

0次?

5次?

16、执行下面的程序段后,k的值是___C___。k=1;n=263;do{k*=n%10;n/=10;}while(n);

3?

63?

36?

2?

17、下面程序段中循环的执行次数是___B___。a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);

10?

3?

5?

4?

18、下面程序段的运行结果是__D____。x=2;do{printf("*");x--;}while(!x==0);

*?

***?

没有输出?

**?

19、下面程序段的运行结果是___B___。i=1;s=1;a=0;do{a=a+s*i;s=-s;i++;}while(i<=10);printf("%d",a);

2?

-2?

3?

0?

20、有如下程序voidmain(){inta=2,b=-1,c=2;if(a)if(b<0)c=0;elsec++;printf("%d\n",c);}该程序的输出结果是___A___。

0?

1?

2?

3?

21、程序中对fun函数有如下说明voidfun();下面说明是错误的是___B___。

fun函数无返回值?

fun函数的返回值可以是任意的数据类型?

fun函数没有形式参数?

void可以省略?

22、函数求sum(intn)的功能是计算自然数1到n的和,即1+2+…+n。main(){printf("Thesum=%d\n",sum(10));}intsum(intn){ints=0,i;for(i=0;i<=n;i++)_____B_____}请从备选答案中选择一答案,补全程序。

s=s+n;returns;?

s=s+i;returns;?

returns;?

returns+=i;?

23、有以下程序intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf()__A___

4,3,7?

3,4,7?

5,2,7?

2,5,7?

24、若有说明:inta[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是___B___。

2?

3?

4?

无确定值?

25、判断字符串s1是否大于字符串s2,应当使用___D____。

if(s1>s2)?

if(strcmp(s1,s2))?

if(strcmp(s2,s1)>0)?

if(strcmp(s1,s2)>0)?

26、当运行以下程序时,从键盘输入:AhaMAAha<CR><CR>表示回车,则下面程序的运行结果是___A____。#include"stdio.h"main(){chars[80],c='a';inti=0;scanf("%s",s);while(s[i]!='\0'){if(s[i]==c)

ahAMa?

AhAMa?

AhAMaahA?

ahAMaahA?

27、以下程序执行后a的值为___C____。main(){inta,m=2,k=1,*p=&k;a=p!=&m;printf("%d\n",a);}

-1?

0?

1?

2?

28、以下能正确读入字符串的程序段是____C___。

char*p;scanf("%s",p);?

charstr[10];scanf("%s",&str);?

charstr[10],*p;p=str;scanf("%s",p);?

charstr[10],*p=str;scanf("%s",p[1]);?

29、若有定义:inti,x[3][4];,则不能将x[1][1]的值赋给变量i的语句是___B___。

i=x[1][1]?

i=*(*(x+1))?

i=*(*(x+1)+1)?

i=*(x[1]+1)?

30、下面程序的运行结果是____A___。#include<stdio.h>#include<string.h>fun(char*s){chart,*a,*z;a=s;z=s+strlen(s)-1;while(a++<z--){t=*a++;*a=*z--;*z=t;}}main(){char*p;p="a

abdddfg?

afcdebg?

gbedcfa?

gfedcba?

31、用来描述C程序中注释的是__C___

//?

?

**?

32、对于"xy\n\102\\\'"字符串的长度是__B___

7?

6?

12?

13?

33、已知:intx=10;执行语句x-=x+x;后x的值是__A___

-10?

10?

-20?

20?

34、下列描述中,正确的是__A___

所有的输入/输出都是通过调用库函数处理的?

所有的输入/输出都是通过输入/输出语句实现的?

getchar和putchar可以省略#include?

在输入/输出格式中的*表示跳过数据的含义?

35、设x=10,y=5;z=15,执行下面一段程序后z的结果是__C___if(x>y)if(y>z)x=y;elsez=y;

7?

6?

5?

4?

36、执行下面程序段的结果是__D___intx=0;do{printf(“%2d”,x--);}while(x);

打印出321?

打印出23?

不打印任何结果?

陷入死循环?

37、以下关于switch语句和break语句的描述正确的是__D___

在switch语句中必须使用break语句?

break语句只能用于switch语句体中?

break语句只能用于循环语句中?

在switch语句中可以使用break语句?

38、与语句while(!x)等价的语句是__A___

while(x==0)?

while(x!=0)?

while(x!=1)?

while(~x)?

39、下面的描述错误的是__C___

?函数可以有多个形式参数?

?函数可以没有返回值?

?函数内可以嵌套定义函数?

?函数可以被其他函数调用?

40、下面关于局部变量的描述中,错误的是__D___

?函数的局部变量的有效范围只能在本函数?

?函数的形式参数也是局部变量?

?局部变量的名称不能和函数同名称?

?不同的函数中不能定义相同名称的局部变

好了,文章到此结束,希望可以帮助到大家。