大家好,今天来为大家解答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___
?函数的局部变量的有效范围只能在本函数?
?函数的形式参数也是局部变量?
?局部变量的名称不能和函数同名称?
?不同的函数中不能定义相同名称的局部变
好了,文章到此结束,希望可以帮助到大家。