c语言程序设计题库 100例,请教一个基础c++程序设计题目
c语言程序设计题库 100例,请教一个基础c++程序设计题目详细介绍
本文目录一览: 2010南开c语言100上机题库
几级?
邮箱?
计算机二级C语言上机南开100题--1
1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:
int fun(int score[],int m,int below[])
{
int i,k=0,aver=0;
for(i=0;i<m;i++)
aver+=score[i];
aver/=m;
for(i=0;i<m;i++)
if(score[i]<aver)
{
below[k]=score[i];
k++;
}
return k;
}
2: 第2题 请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:
void fun(int *a, int *n)
{
int i,j=0;
for(i=2;i<1000;i++)
if ((i%7==0 || i%11==0) && i%77!=0)
a[j++]=i;
*n=j;
}
3: 第3题 请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:
void fun(int x, int pp[ ], int *n)
{
int i=1,j=0;k=0,*t=pp;
for(i=0;i<=x;i++)
if(i%2!=0)
{
t[j]=I;
j++;
}
for(i=0;i<j;i++)
if(x%t[i]==0)
{
pp[k]=t[i];
k++;
}
*n=k;
}
4: 第4题 请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
答案:
void fun(char *tt, int pp[])
{
int i;
for (i=0;i<26;i++)
pp[i]=0;
while (*tt)
{
switch (*tt)
{
case ‘a’: pp[0]++;break;
case ‘b’: pp[1]++;break;
case ‘c’: pp[2]++;break;
case ‘d’: pp[3]++;break;
case ‘e’: pp[4]++;break;
case ‘f’: pp[5]++;break;
case ‘g’: pp[6]++;break;
case ‘h’: pp[7]++;break;
case ‘i’: pp[8]++;break;
case ‘j’: pp[9]++;break;
case ‘k’: pp[10]++;break;
case ‘l’: pp[11]++;break;
case ‘m’: pp[12]++;break;
case ‘n’: pp[12]++;break;
case ‘o’: pp[14]++;break;
case ‘p’: pp[15]++;break;
case ‘q’: pp[16]++;break;
case ‘r’: pp[17]++;break;
case ‘s’: pp[18]++;break;
case ‘t’: pp[19]++;break;
case ‘u’: pp[20]++;break;
case ‘v’: pp[21]++;break;
case ‘w’: pp[22]++;break;
case ‘x’: pp[23]++;break;
case ‘y’: pp[24]++;break;
case ‘z’: pp[25]++;break;
}
tt++;
}
}
5: 第5题 请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。
答案:
void fun(int m, int k, int xx[])
{
int g=0,I,j,flag=1;
for(i=m+1;i<m*m;i++)
{
for(j=0;j<I;j++)
{
if(i%j!=0)
flag=1;
else
{
flag=0;
break;
}
}
if (flag==1 && j>=i)
{
if (k>=0)
{
xx[g++]=i;
k--;
}
else
break;
}
}
}
6: 第6题 请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。
答案:
void fun(char a[],char b[], int n)
{
int I,j=0;
for (i=0;i<LEN;i++)
if (i!=n)
{
b[j]=a[i];
j++;
}
b[j]=‘\0’;
}
7: 第7题 请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下标并存放在k所指的储存单元中。
答案:
void fun (int *s, int t, int *k)
{
int I, max;
max=s[0];
for(i=0;i<t;i++)
if (s[i]>max)
{
max=s[i];
*k=I;
}
}
8: 第8题 编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n通过形参传入。S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n)
答案:
float fun (int n)
{
int i;
float s=1.0, t=1.0;
for(i=2;i<=n;i++)
{
t=t+i;
s=s+1/t;
}
return s;
}
9: 第9题 编写一个函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。M与n为两个正整数,且要求m>n。 p=m!/n!(m-n)!
答案:
float fun(int m, int n)
{
float p,t=1.0;
int I;
for (i=1;i<=m;i++)
t=t*I;
p=t;
for(t=1.0,i=1;i<=n;i++)
t=t*I;
p=p/t;
for(t=1.0,i=1;i<=m-n;i++)
t=t*I;
p=p/t;
return p;
}
10: 第10题 编写函数fun,它的功能是:利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。
迭代步骤如下:(1)取x1初值为0.0; (2)x0=x1,把x1的值赋各x0;
(3)x1=cos(x0),求出一个新的x1;
(4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);
(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。
程序将输出root=0.739085。
答案:
float fun()
{
float x1=0.0,x0;
do
{
x0=x1;
x1=cos(x0);
}
while(fabs(x0-x1)>1e-6);
return x1;
}
11: 第11题 下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数 fun(int a[][n]),该函数的功能是:使数组左下半三角元素中的值全部置成0。
答案:
int fun(int a[][N])
{
int I,j;
for(i=0;i<N;i++)
for(j=0;j<=I;j++)
a[i][j]=0;
}
12: 第12题 下列程序定义了n×n的二维数组,并在主函数中赋值。请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。
答案:
double fun(int w[][N])
{
int I,j,k=0;
double s=0.0;
for(j=0;j<N;j++)
{
s+=w[0][j];
k++;
}
for(j=0;j<N;j++)
{
s+=w[N-1][j];
k++;
}
for(i=1;i<=N-2;i++)
{
s+=w[i][0];
k++;
}
for(i=1;i<=N-2;i++)
{
s+=w[i][N-1];
k++;
}
return s/=k;
}
13: 第13题 请编写一个函数void fun(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。
答案:
void fun(int tt[M][N], int pp[N])
{
int I,j,min;
for(j=0;j<N;j++)
{
min=tt[0][j];
for(i=0;i<M;i++)
{
if (tt[i][j]<min)
min=tt[i][j];
}
pp[j]=min;
}
}
14: 第14题 请别写函数fun,函数的功能使求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。
答案:
int fun(int a[M][N])
{
int I,j,s=0;
for(j=0;j<N;j++)
{
s+=a[0][j];
s+=a[M-1][j];
}
for(i=1;i<=M-2;i++)
{
s+=a[i][0];
s+=a[i][N-1];
}
return s;
}
15: 第15题 请编写一个函数unsigned fun(unsigned w),w使一个大于10的无符号整数,若w使n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。
答案:
unsigned fun(unsigned w)
{
unsigned t,s=0,s1=1,p=0;
t=w;
while(t>10)
{
if(t/10)
p=t%10;
s=s+p*s1;
s1=s1*10;
t=t/10;
}
return s;
}
16: 第16题 请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树,并对第三位进行四舍五入(规定h中的值位正数)。
答案:
float fun(float h)
{
long t;
float s;
h=h*1000;
t=(h+5)/10;
s=(float)t/100.0;
return s;
}
17: 第17题 请编写一个函数fun(char *s),该函数的功能使把字符串中的内容拟置。
答案:
void fun(char *s)
{
char ch;
int I,m,n;
i=0;
m=n=strlen(s)-1;
while(i<(n+1)/2)
{
ch=s[i];
s[i]=s[m];
s[m]=ch;
i++;
m--;
}
}
18: 第18题 编写程序,实现矩阵(3行3列)的转置(即行列互换)。
答案:
void fun(int array[3][3])
{
int I,j,temp;
for(i=0;i<3;i++)
for(j=0;j<I,j++)
{
temp=array[i][j];
array[i][j]=array[j][i];
array[j][i]=temp;
}
}
19: 第19题 编写函数fun,该函数的功能是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。
答案:
void fun(char s[],int c)
{
int i=0;
char *p;
p=s;
while(*p)
{
if(*p!=c)
{
s[i]=*p;
i++;
}
p++;
}
s[i]=‘\0’;
}
20: 第20题 编写函数int fun(int lim,int aa[max]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。
答案:
int fun(int lim, int aa[MAX])
{
int k=0,I,j;
for(i=lim;i>1;i--)
{
for(j=2;j<i;j++)
if(i%j==0)
break;
else
continue;
if(j>=i)
{
aa[k]=i;
k++;
}
}
return k++;
}
21: 第21题 请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。
答案:
void fun(char *s,int num)
{
char t;
int I,j;
for(i=1;i<num-2;i++)
for(j=i+1;j<num-1;j++)
if(s[i]<s[j])
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
22: 第22题 n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。
答案:
double fun(STREC *h)
{
double max;
STREC *q=h;
max=h->s;
do
{
if(q->s>max)
max=q->s;
q=q->next;
}
while(q!=0);
return max;
}
23: 第23题 请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都是一样的字符串。
答案:
int fun(char *str)
{
int I,n=0;fg=1;
char *p=str;
while (*p)
{
n++;
p++;
}
for(i=0;i<n/2;i++)
if (str[i]==str[n-1-i]);
else
{
fg=0;
break;
}
return fg;
}
24: 第24题 请编写一个函数fun,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。
答案:
long fun (char *p)
{
long s=0,t;
int i=0,j,n=strlen(p),k,s1;
if(p[0]==‘-’)
i++;
for(j=I;j<=n-1;j++)
{
t=p[j]-‘0’;
s1=10;
for(k=j;k<n-1;k++)
t*=s1;
s+=t;
}
if(p[0]==‘-’)
return –s;
else
return s;
}
25: 第25题 请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。
答案:
char *fun(char *s,char *t)
{
char *p,*t1=t,*s1=s;
int n=0;m=0;
while (*s1)
{
n++;
s1++;
}
while(*t1)
{
m++;
t1++;
}
if(n>=m)
p=s;
else
p=t;
return p;
}
26: 第26题 请编写一个函数fun,它的功能是:根据以下公式求x的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):
x/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3×4/3×5×7×9+…+1×2×3×…×n/3×5×7×(2n+1)
程序运行后,如果输入精度0.0005,则程序输出为3.14…。
答案:
double fun(double eps)
{
double s;
float n,t,pi;
t=1;pi=0;n=1.0;s=1.0;
while((fabs(s))>=eps)
{
pi+=s;
t=n/(2*n+1);
s*=t;
n++;
}
pi=pi*2;
return pi;
}
27: 第27题 请编写一个函数fun,它的功能是:求除1到m之内(含m)能北7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
答案:
void fun(int m, int *a, int *n)
{
int I,j=0; *n=0;
for(i=1;i<=m;i++)
if (i%7==0 || i%11 ==0)
{
a[j]=I;
j++;
}
*n=j;
}
28: 第28题 请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n 是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
答案:
void fun (int a[],int n, int *max, int *d)
{
int I;
*max=a[0];
*d=0;
for(i=0;I<n;i++)
if(a[i]>*max)
{
*max=a[i];
*d=I;
}
}
29: 第29题 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
答案:
void fun(char *ss)
{
int I,n;
n=strlen(ss);
for(i=1;i<n;i+=2)
if(ss[i]>=‘a’&& ss[i]<=‘z’)
ss[i]=ss[i]-32;
}
30: 第30题 请编写一个函数fun,它的功能是:求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数。
答案:
int fun(int a[][M])
{
int I,j,max;
max=a[0][0];
for(i=0;i<2;i++)
for(j=0;j<M;j++)
if(a[i][j]>max)
max=a[i][j];
return max;
}
31: 第31题 请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。
答案:
void fun(char *s,char t[])
{
int I,j=0,n;
n=strlen(s);
for(i=0;I,n;i++)
if(i%2==0&&s[i]%2==0)
{
t[j]=s[i];
j++;
}
t[j]=‘\0’;
}
32: 第32题 请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ascii值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的一个数组中。
答案:
void fun(char *s,char t[])
{
int I,j=0,n;
n=strlen(s);
for(i=0;I,n;i++)
if(i%2!=0&&s[i]%2!=0)
{
t[j]=s[i];
j++;
}
t[j]=‘\0’;
}
33: 第33题 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。
答案:
void fun(char *a,int n)
{
int i=0;k=0;
char *p, *t;
p=t=a;
while (*t)
t++;
t--;
while(*t==‘*’)
{
k++;
t--;
}
t++;
if(k>n)
{
while (*p&&p<t+n)
{
a[i]=*p;
i++;
p++;
}
a[i]=‘\0’;
}
}
34: 第34题 学生的记录由学号和成绩组成,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能使:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
答案:
int fun (STREC *a, STREC *b)
{
int I,j=0,n=0, max;
max=a[0].s;
for(i=0;i<N;i++)
if(a[i].s>max)
max=a[i].s;
for(i=0;i<N;i++)
if(a[i].s==max)
{
*(b+j)=a[i];
j++;
n++;
}
return n;
}
35: 第35题 请编写一个函数,用来删除字符串中的所有空格。
答案:
void fun(char *str)
{
int i=0;
char *p=str;
while (*p)
{
if(*p!=‘’)
{
str[i]=*p;
i++;
}
p++;
}
str[i]=‘\0’;
}
36: 第36题 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。
答案:
void fun(char *a)
{
int i=0,n=0;
char *p;
p=a;
while (*p==‘*’)
{
n++;
p++;
}
while (*p)
{
a[i]=*p;
i++;
p++;
}
while(n!=0)
{
a[i]=‘*’;
i++;
n--;
}
a[i]=‘\0’;
}
37: 第37题 某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。
答案:
void fun(STREC *p)
{
double av=0.0;
int i:
for(i=0;i<N;i++)
av+=p->s[i];
av/=N;
p->ave=av;
}
38: 第38题 请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
答案:
int fun(char *ss, char c)
{
int n=0;
while (*ss)
{
if(*ss==c)
n++;
ss++;
}
return n;
}
39: 第39题 请编写函数fun,该函数的功能是:移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。
答案:
void fun(int *w, int p, int n)
{
int b[N], i, j=0;
for(i=0;i<=p;i++)
{
b[i]=w[i];
j++;
}
for(i=0;i<=p;i++)
{
w[j]=b[i];
j++;
}
}
40: 第40题 请编写函数fun,该函数的功能是移动字符串中内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。
答案:
void fun(char *w,int m)
{
char b[N];
int I,j=0;
for(i=0;i<m;i++)
{
b[j]=w[i];
j++;
}
for (i=0;i<strlen(w)-m;i++)
w[i]=w[i+m];
for(j=0;j<m;j++)
{
w[i]=b[j];
i++;
}
w[i]=‘\0’;
}
41: 第41题 请编写函数fun,该函数的功能是:将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
答案:
void fun(char (*s)[n],char *b)
{int i,j,k=0;
for(j=0;j<n;j++)
for(i=0;i<m;i++)
{b[k]=*(*(s+i)+j)
k++;}
b[k]=‘\0’;}
42: 第42题 下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n],int n),该函数的功能是:将数组右上半三角元素中的值乘以m。
答案:
void fun(int a[][n],int m)
{int i,j;
for(j=0;j<n;j++)
for(i=0;i<=j;i++)
a[j]=a[j]*m;}
43: 第43题 编写一个函数,从传入的num个字符串中找出一个最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。
答案:
char *fun(char (*a)[81],int num)
{int i;
char *max;
max=a[0];
for(i=0;i<num;i++)
if(strlen(max)<strlen(a))
max=a;
return max;}
44: 第44题 编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。
答案:
int fun(char *str,char *substr)
{int n;
char *p,*r;
n=0;
while(*str)
{p=str;
r=substr;
while(*r)
if(*r==*p)
{r++;
p++;}
else
break;
if(*r==‘\0’)
n++;
str++;}
return n;}
45: 第45题 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n 给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后的*个数。在编写时不得使用c语言给提供得字符串函数。
答案:
void fun(char *a,int n,int h,int e)
{int i=0;
char *p;
for(p=a+h;p<a+n-e;p++)
{*(a+i)=*p;
i++;}
*(a+i)=‘\0’;}
46: 第46题 学生得记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。
答案:
void fun(strec a[])
{int i,j;
strec t;
for(i=0;i<n-1;i++)
for(j=i;s<n;j++)
if(a.s<a[j].s)
{t=a;
a=a[j];
a[j]=t; }}
47: 第47题 请编写一个函数void fun(char *ss),其功能时:将字符串ss中所有下标为奇数位置上的字母转换为大写(若位置上不是字母,则不转换)。
答案:
void fun(char *ss)
{int i,n=0;
char *p=ss;
while(*p)
{n++;
p++;}
for (i=0;i<n;i++)
if ((ss=‘a’&ss<=‘z’)&i%2!=0)
ss=ss-32;
ss=‘\0’;}
48: 第48题 请编写函数fun,其功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。
答案:
void fun(int a,int b,long *c)
{*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;}
49: 第49题 请编写函数fun,其功能是:将s所指字符串中下标位偶数同时ascii值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。
答案:
void fun(char *s,char t[])
{int i,j=0,n=strlen(s);
for(i=0;i<n;i++)
if(i%2==0&s%2!=0)
else
{f[j]=s;
j++;}
t[j]=‘\0’;}
50: 第50题 已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入a机构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。
答案:
void fun(stu a[],stu *s)
{int i,max;
max=a[0].s;
for (i=0;i<n;i++)
if(a.s>max)
{max=a.s;
*s=a;}}
《C语言程序设计》练习题
1.C
C程序总是从main函数开始执行的,与main函数的位置无关
2.A
printf(“%d”,(x,y));其中(x,y)间的那个","是逗号运算符,打印输出选择最后一个。
若两个数 x,y 取y
若n个数 a,b,c,d,.......,s 取s
3.C
“”属于字符串,‘’属于字符常,如‘1’、‘c'。
4.A
表达式“3!=4”是真值,真值为TRUE,即为1。
5.C
前两个if语句都不符全条件,不执行。所以X=3。
6.D
同2题,如果printf(“%d\n”,z=(x%y,x/y,x*y));则输出结果为30。
7.A
这个不用多说,就得满足&&关系
8.D
A) int a[ ]=“string”; int改为char是对的
B) int a[5]={0,1,2,3,4,5}; 越界
C) char a=”string”; 字符串,不是字符
D) char a[ ]={“01234”}; 正确,也可以char a[ ]=“01234”;
9.D
x+=y;y=x-y;x-=y//x=x+y;//y=x-y;即y=x;
x=x-y相当于x=(x+y)-x即为x=y;
10.C
double 型
11.D
上面三个都是a为真时输出x
12.C
a[][3]={0}相当于a[1][3]={0};
13.B
这个程序是很简单的一个数组和函数调用的运用,我还是给你讲一下思路吧!
首先在主函数中给二维数组初始化,在调用fun函数来实现所要的要求,在fun函数中可以先利用循环来找出二维数组的周边元素,循环题就是定义的sum总和与周边元素的平方和的自加,最后在返回sum的值,其中有关系到函数返回值的类型问题,我们可以先定义它为浮点型,应为涉及到平方和,到此程序应该差不多了!希望能帮助你!
你把你知道的都删了,不知道的再来问,别全问行不,别告诉我你一个都不知道
我很想帮你,但还得靠你自己,你要相信你自己,上面这些小菜不要别人一样搞定。
找本C语言的书看下,上面都有
一、选择题
1、C语言规定,在一个源程序中,main()函数的位置(C )。
A) 必须在最开始 B)必须在最后
C) 可以任意 D) 必须在系统调用的库函数后面
这题你死记就行,你看看这个
任何一个C++程序都必须定义一个main函数,它的返回类型总是int类型。这个函数由操作系统来调用,在main函
数执行完以后,程序也就终止了。 main也可以使用return向操作系统返回一个值,使用操作系统的命令可以检测
main的返回值。一般约定在main返回0时,表示程序运行过程中没有出现错误,其它非零值表示程序出现异常情况。
若没有为main指定返回值,这样返回值是任意的。
2、若x和y都是int 型变量,x=100,y=200,且有以下程序段,printf(“%d”,(x,y));则其输出结果是( A)。
A) 200 B) 100 C) 100 200 D) 输出不确定值
(x,y)这是个逗号表达式,表达式的值为最后一个逗号后面表达式的值,因为前面有一个%d,所以输出 的是y的
值
3、合法的C语法字符常量是(C )。
A) “A” B) 65 C) ‘\t’ D) A
字符都是由两个单引号括起来的,死记, a)为字符串
4、表达式“3!=4”的值是(A )。
A) 1 B) 0 C) T D) F
!=是c语言的逻辑运算符,3!=4为真,多以得1, 3=4为假,值为0
5、 int a=1,b=2,c=3,d=4,执行下列程序后x的值为( C)。
if(a>b) x=1;else if (c>d) x=2;else x=3;
A) 1 B) 2 C) 3 D) 4
如果a>b,1>2为假,不执行x=1,执行else if(c>d),判断:3>4为假,不执行x=2,执行=3,完
6、以下程序的输出结果是(D)。
Int x=10,y=3,z;printf(“%d\n”,z=(x%y,x/y));
A)1 B) 0 C) 4 D) 3
逗号表达式,x%y,10%3,商3余1,模取余数1,x/y,10/3,商3余1,除法取商3,逗号表达式,表达式的值为最后一
个逗号后面表达式的值
7、为表示x≥y≥z,应使用C语言表达式(A )。
A) (x>=y)&&(y>=z) B) (x>=y) AND (y>=z)
C) (x>=y>=z) D) (x>=y) & (y>=z)
关系运算符,x>=y与y>=z必须是同时成立的,因此要用逻辑运算符&&,&&与的意思
8、合法的数组定义是( a )。
A) int a[ ]=”string”; B) int a[5]={0,1,2,3,4,5};
C) char a=”string”; D) char a[ ]={“01234”};
a不指定数组长度定义,正确
b数组长度为5,就是里面有5个数组元素,多了一个数组元素
c定义a不是数组而是一个变量,素组应该是a[]
d是错的,字符串是这样定义的:char a[ ]={'0','1','2','3','4','\0'};
[4]中数字是数组长度,说明里面有几个元素
9、设x和y均为int型变量,则语句“x+=y;y=x-y;x-=y;”的功能是(D)。
A) 把x和y按从小到大排列 B)把x和y按从大到小排列
C)无确定结果 D)交换x和y中的值
x+=y等同于x=x+y,把x加y的值赋给x,x现在存的是x与y的和
y=x-y把x减y的值赋给y,x现在存的是x与y的和 (x+y)-y=x,把x的值给y,y存x的值
x-=y等同于x=x-y,把x减y的值赋给x,(x+y)-y=x,现在的后面的y存的是x的值,做完后x里存的值是y,完成交换
10、若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是(C)。
A) 1 B)2 C) 2.0 D) 1.0
逗号表达式,先让x=1在算y=x+3/2,得2,因为是double类型,所以有小数点
11、下列条件语句中,功能与其他语句不同的是 (D)
A) if(a) printf("%d\n",x); else printf("%d\n",y);
B) if(a==0) printf("%d\n",y); else printf("%d\n",x);
C) if (a!=0) printf("%d\n",x); else printf("%d\n",y);
D) if(a==0) printf("%d\n",x); else printf("%d\n",y);
a 如果a为真输出x,如果a为假输出y
b 如果a==0,也就是为假,输出y,a为真输出x,同a
c 如果a!=0为真,输出x,a为假输出y同上
d 如果a为假输出x,如果a为真输出y,与以上的都不同
12、以下能正确定义二维数组的是 (C)
A) int a[][3]; B) int a[][3]=2{2*3};
C) int a[][3]={0}; D) int a[2][3]={{1},{2},{3,4}};
a 没有给数组赋初值
b {}里不能有*
c 正确,记住第一个[]中可以为空,第二个[]不能为空,死记
d a[2][3] 的意思是有两个一维数组,每个一维数组里有3个元素,{{1},{2},{3,4}}; 她的意思是三个数组,{}中的每一个{}代表一个数组,里边的数为数组元素
13、用C语言编写的代码程序 (B)
A)可立即执行 B)是一个源程序
C)经过编译即可执行 D)经过编译解释才能执行
死记
C语言期末试库试题
C语言期末题库试题赶紧复习
1,下列定义变量的语句中错误的是-----
A,int _int B、double int_ C、char For D、float US$答案:D一一知识点:常量、变量和标识符
2.以下不合法的用户标识符是-----
A、j2_KEY B、DoubleC、4d D、_8
答案:C一知识点:常量、变量和标识符
3.以下4组用户定义标识符中,全部合法的一组是-----
A、_main enclude sin B、If -max turbo C、txt REAL 3COMD、int k_2 _001 ???
答案:A一一知识点:常量、变量和标识符
4.以下定义语句中正确的是-----
A、char a='A' b=B;B、float a=b=10.0;(正解a=10.0 b=10.0)
C、int a=10,*b=&a; D、float *a,b=&a;???答案:C一知识点:常量、变量和标识符
5.以下不能定义为用户标识符的是-----
A、scanf B、VoidC、_3com D、int
答案:D一一知识点:常量、变量和标识符
6.以下有4组用户标识符,其中合法的一组是-----
A、For -sub Case B、4d DO Size
C、f2_G3 IF abc D、WORD Void define
答案:C一知识点:常量、变量和标识符
7.C语言中最简单的数据类型包括-----
A、整型、实型、逻辑型B、整型、实型、字符型
C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型
答案:B一一知识点:常量、变量和标识符
8.下列选项中,合法的C语言关键字是-----
A、VAR B、cher C、integer D、default答案:D一一知识点:常量、变量和标识符
9,以下不能定义为用户标识符的是-----
A、Main B、_0 C、_int D、sizeof
答案:D一知识点:常量、变量和标识符
10下列叙述中正确的是----
A、C语言中既有逻辑类型也有集合类型
B、C语言中没有逻辑类型但有集合类型
C、C语言中有逻辑类型但没有集合类型
D、C语言中既没有逻辑类型也没有集合类型答案:D一一知识点:常量、变量和标识符
11,当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是-----
A、c=b=a; B、(a=c)ll(b=c);C、(a=c)&&(b=c); D、a=c=b;
答案:C-知识点:赋值表达式
12.以下选项中非法的表达式是-----
A、0<=x<100 Bi=j==0 C、(char)(65+3) D、x+1=x+1
答案:D一一知识点:赋值表达式
13.以下程序的输出结果是-----
#include
main() [ int a,b,d=241; a=d/100%9;
b=(-1)&&(-1);printf("%d,%d\n"a,b);???
A、61 B、2,1 C、6,0 D、2,0
答案:B一一知识点:赋值表达式
14.以下循环体的执行次数是-----
main() { int j; for (i=0,j=1; i<=j+1;i+=2,j--) printf("%d \n",i);
A、3B、2C、1 D、0
答案:C一一知识点:赋值表达式
15.有以下定义语句double a,b; int w;long c;若各变量已正确赋值,则下列选项中正确的表达式是-----
A、a=a+b=b++ B、w%((int)a+b) C、(c+w)%(int)a D、w=a=b;答案:C一知识点:赋值表达式
16,有如下程序 main()[ int a; char c=10;loat f=100.0;double x;a=f/=c*=(x=6.5);printf("%d %d%3.1f%3.1f\n"a,c,f,x);程序运行后输出结果是-----
A、1 65 1 6.5 B、1 65 1.5 6.5 C、1 65 1.0 6.5
D、2 65 1.5 6.5
答案:B一一知识点:赋值表达式
17.若变量a、i已正确定义,且i已正确赋值,合法的语句是-----
A、a==1 B、++i; C、a=a++=5; D、a=int(i);
答案:B一一知识点: 赋值表达式
18,若变量已正确定义并赋值,下面符合C语言语法的表达式是-----
A、a:=b+1 B、a=b=c+2 C、int 18.5%3 D、a=a+7=c+b答案:B一一知识点:赋值表达式
19,设变量x为float型且已赋值,则以下语句中能将x中的数值保留到
小数点后两位,并将第三位四舍五入的是
A、x=x*100+0.5/100.0 B、x=(x*100+0.5)/100.0C、x=(int)(x*100+0.5)/100.0??? D、x=(x/100+0.5)*100.0
答案:C一一知识点:赋值表达式
20.在一个C程序中----
A、main函数必须出现在所有函数之前
B、main函数可以在任何地方出现
C、main函数必须出现在所有函数之后
D、main函数必须出现在固定位置
答案:B知识点:简单C语言程序的构成和格式
21,以下说法中正确的是----
A、#define和printf都是C语句 B、#define是C语句,而printf不是C、printf是C语句,但#define不是 D、#define和printf都不是C语句答案:D一知识点:简单C语言程序的构成和格式
22,若k是int型变量,且有下面的程序片段----
k=-3 if(k<=0) printf("####") elseprintf("&&&&");
上面程序片段的输出结果是
A、#### B、&&&& C、####&&&& D、有语法错误,无输出结果答案:D一一知识点:简单C语言程序的构成和格式
23.以下4个选项中,不能看作一条语句的是----
A、l;} B、a=0,b=0,c=0; C、if(a>0); D、if(b==0) m=1;n=2;? ??答案:D一一知识点:简单C语言程序的构成和格式
24,有以下程序main() [int a=0b=0;a=10;/* 给a赋值*/ b=20;/* 给b赋值*/ printf("a+b=%d\n",atb) } 程序运行后的输出结果是---
A、a+b=10 B、a+b=30 C、30 D、出错答案:B-一知识点:简单C语言程序的构成和格式
25.以下选项中,不能作为合法常量的是-----
A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0答案:B一一知识点:实型数据
28,以下符合C语言语法的实型常量是-----
A、1.2E0.5 B、3.14159E C、5E-3 D、E15答案:C一一知识点:实型数据
30,表达式36-5/2+1.2+5%2的值是----
A、4.3 B、4.8 C、3.3 D、3.8
答案:D-一知识点:算术表达式
31,设int a=12,则执行完语句a+=a-=a*a后,a的值是-----
A、552 B、264 C、144 D、-264
答案:D一知识点:算术表达式
32.以下变量x、y、z均为double类型且已正确赋值,不能正确表示数字式子x/(y*z)的C语言表达式是_-----
A、x/y*z B、x*(1/(yz)) C、x/y*1/z D、x/ylz答案:A一一知识点:算术表达式
33,若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值是-----
A、1.4 B、1 C、2.0 D、2
答案:B-一知识点:算术表达式
《单片机C语言程序设计实训100例——基于8051+Proteus仿真》 第03篇源代码
单片机c语言编程100个实例目录1
函数的使用和熟悉
实例3:用单片机控制第一个灯亮
实例4:用单片机控制一个灯闪烁:认识单片机的工作频率
实例5:将 P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能
实例6:使用P3口流水点亮8位LED
实例7:通过对P3口地址的操作流水点亮8位LED
实例8:用不同数据类型控制灯闪烁时间
实例9:用P0口、P1 口分别显示加法和减法运算结果
实例10:用P0、P1口显示乘法运算结果
实例11:用P1、P0口显示除法运算结果
实例12:用自增运算控制P0口8位LED流水花样
实例13:用P0口显示逻辑"与"运算结果
实例14:用P0口显示条件运算结果
实例15:用P0口显示按位"异或"运算结果
实例16:用P0显示左移运算结果
实例17:"万能逻辑电路"实验
实例18:用右移运算流水点亮P1口8位LED
实例19:用if语句控制P0口8位LED的流水方向
实例20:用swtich语句的控制P0口8位LED的点亮状态
实例21:用for语句控制蜂鸣器鸣笛次数
实例22:用while语句控制LED
实例23:用do-while语句控制P0口8位LED流水点亮
实例24:用字符型数组控制P0口8位LED流水点亮
实例25: 用P0口显示字符串常量
实例26:用P0 口显示指针运算结果
实例27:用指针数组控制P0口8位LED流水点亮
实例28:用数组的指针控制P0 口8 位LED流水点亮
实例29:用P0 、P1口显示整型函数返回值
实例30:用有参函数控制P0口8位LED流水速度
实例31:用数组作函数参数控制流水花样
实例32:用指针作函数参数控制P0口8位LED流水点亮
实例33:用函数型指针控制P1口灯花样
实例34:用指针数组作为函数的参数显示多个字符串
单片机c语言编程100个实例目录2
实例35:字符函数ctype.h应用举例
实例36:内部函数intrins.h应用举例
实例37:标准函数stdlib.h应用举例
实例38:字符串函数string.h应用举例
实例39:宏定义应用举例2
实例40:宏定义应用举例2
实例41:宏定义应用举例3
* 中断、定时器中断、定时器 *中断、定时器*中断、定时器 /
实例42:用定时器T0查询方式P2口8位控制LED闪烁
实例43:用定时器T1查询方式控制单片机发出1KHz音频
实例44:将计数器T0计数的结果送P1口8位LED显示
实例45:用定时器T0的中断控制1位LED闪烁
实例46:用定时器T0的中断实现长时间定时
实例47:用定时器T1中断控制两个LED以不同周期闪烁
实例48:用计数器T1的中断控制蜂鸣器发出1KHz音频
实例49:用定时器T0的中断实现"渴望"主题曲的播放
实例50-1:输出50个矩形脉冲
实例50-2:计数器T0统计外部脉冲数
实例51-2:定时器T0的模式2测量正脉冲宽度
实例52:用定时器T0控制输出高低宽度不同的矩形波
实例53:用外中断0的中断方式进行数据采集
实例54-1:输出负脉宽为200微秒的方波
实例54-2:测量负脉冲宽度
实例55:方式0控制流水灯循环点亮
实例56-1:数据发送程序
实例56-2:数据接收程序
实例57-1:数据发送程序
实例57-2:数据接收程序
实例58:单片机向PC发送数据
实例59:单片机接收PC发出的数据
*数码管显示*数码管显示 数码管显示数码管显示*/
实例60:用LED数码显示数字5
实例61:用LED数码显示器循环显示数字0~9
实例62:用数码管慢速动态扫描显示数字"1234"
实例63:用LED数码显示器伪静态显示数字1234
实例64:用数码管显示动态检测结果
实例65:数码秒表设计
实例66:数码时钟设计
实例67:用LED数码管显示计数器T0的计数值
实例68:静态显示数字“59”
单片机c语言编程100个实例目录3
键盘控制*键盘控制* *键盘控制 *键盘控制 */
实例69:无软件消抖的独立式键盘输入实验
实例70:软件消抖的独立式键盘输入实验
实例71:CPU控制的独立式键盘扫描实验
实例72:定时器中断控制的独立式键盘扫描实验
实例73:独立式键盘控制的4级变速流水灯
实例74:独立式键盘的按键功能扩展:"以一当四"
实例75:独立式键盘调时的数码时钟实验
实例76:独立式键盘控制步进电机实验
实例77:矩阵式键盘按键值的数码管显示实验
//实例78:矩阵式键盘按键音
实例79:简易电子琴
实例80:矩阵式键盘实现的电子密码锁
液晶显示LCD*液晶显示LCD *液晶显示LCD * *液晶显示LCD*液晶显示LCD *液晶显示LCD */
实例81:用LCD显示字符'A'
实例82:用LCD循环右移显示"Welcome to China"
实例83:用LCD显示适时检测结果
实例84:液晶时钟设计
*一些芯片的使用*24c02 DS18B20 X5045 ADC0832 DAC0832 DS1302 红外遥控/
实例85:将数据"0x0f"写入AT24C02再读出送P1口显示
实例86:将按键次数写入AT24C02,再读出并用1602LCD显示
实例87:对I2C总线上挂接多个AT24C02的读写操作
实例88:基于AT24C02的多机通信 读取程序
实例89:基于AT24C02的多机通信 写入程序
实例90:DS18B20温度检测及其液晶显示
实例91:将数据"0xaa"写入X5045再读出送P1口显示
实例92:将流水灯控制码写入X5045并读出送P1口显示
实例93:对SPI总线上挂接多个X5045的读写操作
实例94:基于ADC0832的数字电压表
实例95:用DAC0832产生锯齿波电压
实例96:用P1口显示红外遥控器的按键值
实例97:用红外遥控器控制继电器
实例98:基于DS1302的日历时钟
实例99:单片机数据发送程序
实例100:电机转速表设计
模拟霍尔脉冲
http://www.dzkfw.com.cn/myxin/51c_language.chm 单片机c语言一百例子
求c语言题库
编程题:
用编写C语言程序实现下面目的:
键盘输入圆柱的底半径r和高h,计算表面积S和体积V并输出。输入输出时要有文字说明,输出数取小数点后2位数字。
键盘输入三个数,编写程序将他们从大到小输出。
键盘输入一个字符,如果它是大写字母,则把它变成小写字母输出;若它是小写字母,则变成大写字母输出;其它字符不改变输出。编写程序实现这一过程。
编写程序实现以下函数功能:(求平方函数sqrt()在头文件math.h中包含,a的值用scanf函数从键盘输入)
编程实现:键盘输入一个整数,判断它是否能被3,5,7整除,并输出以下信息之一:
(1) 能同时被3,5,7整除;
(2) 能被其中两个数(要指出那两个)整除;
(3) 能被其中一个数(要指出那个数)整除;
(4) 不能被3,5,7整除。
编程实现:键盘读入两个数(data1和data2)及一个运算符(op),计算表达式
data1 op data2
的值,其中op可以是 +、-、*、/中的一种。例如:
输入: 1+2
输出:1.000000+2.000000=3.000000
输入: 1.0/2
输出:1.000000/2.000000=0.500000
输入: 3*2.5
输出:3.000000*2.500000=7.500000
等等
有1020个西瓜,第一天卖出一半多两个,以后每天卖剩下的一半多两个,编程求到第几天卖完。
键盘输入一串字符,计算其中的元音字符的个数和辅音字母的个数。例如输入:
I am a boy. You are a girl. 则元音有10个,辅音有8个,等等。输入时以回车(‘\n’)作为结束。
编程计算1-3+5-7+…-99+101的值。
从键盘输入6名学生的各5科成绩,分别统计并输出每个学生的平均成绩。
(每输入一个学生的5科成绩,就要输出他的平均成绩,输入输出要有提示。
例如:
请输入第1个人的成绩:
34
45
67
78
79
他的平均成绩为:?
请输入第2个人的成绩:………………)
从键盘输入若干整数(数据至多100个),其值在0至4范围,用-1作为输入结束标志,统计每个整数的个数。
输出完整的乘法九九表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
……
13. 键盘输入一个字符串,反序输出。
例如输入: "How are you!"
则输出: "!uoy era woH"
若输入: "Holle the world!"
则输出: "!dlrow eht elloH"
等等
14. 编写程序,将键盘输入的两个字符串(str1和str2)连接起来,不要用strcat函数。
例如输入:str1:"I am a boy."
str2:"You are a girl."
连接后输出:
"I am a boy. You are a girl ."
15. 键盘输入十个数,用起泡法对它们由小到大排序。
16. 输出ASCII码为33~127字符的列表。输出方式:每行输出5个字符信息;对于每个字符,先输出十六进制转义字符方式,再输出普通字符方式。例如:
’\x21’ ! ‘\x22’ “ ‘\x23’ # ‘\x24’ $ ‘\x25’ %
等等。其中’\x21’中,单引号(’)、斜线(\)和字符x也要输出。
17. 输入某一科学生成绩,学生数少于100人,当输入成绩为0时结束输入。然后:
(1) 求成绩平均值xx;
(2) 求平均相对误差wucha_x。方法:wucha_x=(|x[0]-xx|+|x[1]-xx|+…+|x[n-1]-xx|)/n
其中n是学生个数,求绝对值函数fabs()在头文件math.h中包含。
第八章函数:
已有变量定义和函数调用语句:
int a, b, h, l;
h=hcf(a, b); l=lcd(a,b);
hcf函数的作用是求两个数的最大公约数,lcf函数的作用是求两个数的最小公倍数。要求在主函数中从键盘输入两个整数分别赋值给变量a,b,然后调用两个函数求出最大公约数和最小公倍数,最后由主函数输出结果。
已有变量定义和函数调用语句:
char str1[80],str2[80];
cpy(str1,str2);
cpy函数的作用是找出str1中的元音字母然后复制到str2中。要求在主函数中实现字符串的输入,并存放到字符数组str1中,函数调用后输出字符数组str1和str2中的内容。
给出年、月、日,计算该日是该年中的第多少天。其中计算过程由函数实现。
输入长方形的长a和宽b的值,通过一个函数调用计算出长方形的周长c和面积s,在主函数中输出长方形的周长和面积值。
已有变量定义语句
double a;int n;
和函数调用语句
mypow(a,b);
要求编写程序,用递归法求出a的n次方的值
写一个函数,实现用“选择法”对输入的10个字符按由小到大的顺序排列。在主函数中调用该函数并输出排序后的结果。
写一个函数,实现用“起泡法“对输入的10个字符按由大到小的顺序排列。在主函数中调用该函数并输出排序后的结果。
编写程序,要求从键盘输入月份号,输出该月的英文名字。例如,输入‘3’,则输出“Match”,输出要求用函数实现。
第十章指针
编一程序,将字符串中的第m个字符的全部字符复制成另一个字符串。要求在主函数中输入字符串及m的值并输出复制结果,在被调用函数中完成复制。(形参与实参均用指针变量)
用“起泡法”对输入的十个整数按由小到大的顺序排序。(对数组中各元素的操作要求用指针的方法)
编一程序,统计从键盘输入的命令行中第二个参数所包含的英文字符个数。
输入一行字符,要求找出其中大写字母、小写字母、空格、数字以及其他字符各有多少个?(要求用指针方法实现)
输入10个数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换,要求写3个函数,分别实现
①输入10个数,
②进行处理,
③输出10个数。
编一程序,将字符串computer赋给一个字符指针,然后从第一个字母开始间隔地输出该串。要求用指针完成。
编一程序,要求从键盘输入两个数,通过函数调用比较两个数的大小,并把大数返回给主调函数,输出这个数。(要求两个变量的地址作为实参)
补充题目:
编写一个函数,统计出一个整数中包含的某一个数字的个数,例如:11254中包含有1个2。
求100以内的全部素数,每行输出10个数。要求判断一个数是否是素数由函数实现。
有36块砖,共36人搬,成年男子一次搬4块砖,成年女子一次搬3块砖,儿童两人抬1块砖,恰好一次全部搬完,编程求出成年男子、成年女子和儿童各多少人。
程序的功能是求三个数的最小公倍数。
max(int x,int y,int z)
{
If(x>y&&x>z) return(x);
else if(y>=x&&y>z) ;
else return(z);
}
main()
{
int a,b,c,i=1,j,s;
scanf(“%d%d%d”,&a,&b,&c);
s= ;
while(1)
{
j=s*i;
if( )
break;
i++;
}
printf(“%d”,j);
}
下面程序用于计算n!的值
main()
{
int i,s,n;
s=1;
printf(“enter n:”);
scanf(“%d”,&n);
for(i=1;i<=n;i++)
;
printf(“s=%d”,s);
}
阅读下面的程序,其结果为( )。
#include
main()
{
char c=’A’;
if(‘0’<=c<=’9’)
printf(“YES”);
else
printf(“NO”);
}
A.YES B.NO
C.YESNO D.语句错误
求:C语言程序设计试卷及答案一份
一、选择题(1~40题每题1分,41~50题每题2分,共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
1.微型计算机的运算器、控制器及内存储器组合在一起,称之为()(本题分值:1分)
【正确答案】D
A.ALU
B.CPU
C.MPU
D.主机
2.下列存储器中,存取速度最快的是()(本题分值:1分)
【正确答案】D
A.软盘
B.硬盘
C.光盘
D.内存
3.系统软件中最重要的是()(本题分值:1分)
【正确答案】A
A.操作系统
B.语言处理程序
C.工具软件
D.数据库管理系统
4、CPU处理的数据基本单位为字,一个字的字长()(本题分值:1分)
【正确答案】D
A.为8个二进制位
B.为16个二进制位
C.为32个二进制位
D.与CPU芯片的型号有关
5.打印当前屏幕内容应使用的控制键是()(本题分值:1分)
【正确答案】D
A.Scroll-Lock
B.Num-Lock
C.PgDn
D.PrtSc(Print Screen)
6.能将高级语言源程序转换成目标程序的是()(本题分值:1分)
【正确答案】C
A.调试程序
B.解释程序
C.编译程序
D.编辑程序
7.二进制数1110111.11转换成十进制数是()(本题分值:1分)
【正确答案】B
A.119.375
B.119.75
C.119.125
D.119.3
8.十六进制数FF.1转换成十进制数是()(本题分值:1分)
【正确答案】A
A.255.0625
B.255.125
C.127.0625
D.127.125
9.中国国家计算机网络设施是()(本题分值:1分)
【正确答案】A
A.NCFC
B.CERNET
C.ISDN
D.Internet
10.控制键^C的功能为()(本题分值:1分)
【正确答案】A
A.终止当前操作
B.系统复位
C.暂停标准输出设备的输出
D.结束命令行
11.COMMAND.COM为命令处理程序,DOS系统启动后,它()(本题分值:1分)
【正确答案】B
A.驻留在外存,需要时装入内存
B.常驻内存,包含所有内部命令
C.不能处理外部命令
D.不能处理后缀为.EXE的可执行文件
12.为了将所有扩展名为.PAS的文件改成扩展名为.P,应使用命令()(本题分值:1分)
【正确答案】C
A.REN *.PAS .?AS
B.REN PAS P
C.REN *.PAS *.P
D.REN *.PAS *.P??
13.设当前盘中文件XY.C的路径为\A\B\XU,当前目录为\A\B。为了查看文件XY.C的内容,应使用命令()(本题分值:1分)
【正确答案】A
A.TYPE XU\XY.C
B.TYPE \XU\XY.C
C.DIR XU\XY.C
D.DIR \A\B\XU\XY.C
14.要将提示符改成当前盘当前目录后加一个大于号“>”,应使用命令()(本题分值:1分)
【正确答案】B
A.PROMPT
B.PROMPT $ p $ g
C.PROMPT $ $
D.PROMPT C\>
15.在多媒体计算机系统中,CD-ROM属于()(本题分值:1分)
【正确答案】D
A.感觉媒体
B.表示媒体
C.表现媒体
D.存储媒体
16.设当前盘为C盘,将A盘根目录下的文件目录信息存放到当前盘当前目录下的文件AB中,应使用命令()(本题分值:1分)
【正确答案】C
A.TYPE A:\>AB
B.DIR >AB
C.DIR A:\>AB
D.DIR \>AB
17.在位运算中,操作数每右移一位,其结果相当于()(本题分值:1分)
【正确答案】B
A.操作数乘以2
B.操作数除以2
C.操作数除以16
D.操作数乘以16
18.在当前盘当前目录下有一个文件A.BAT,其内容为
CD \
MD \XYZ\AB\B\C
CD XYZ\AB\B
在正确执行上述文件后,接着执行下列命令时,不会发生错误的是()(本题分值:1分)
【正确答案】C
A.MD C
B.RD \XYZ
C.RD C
D.RD B
19.下列命令组中两个DOS命令互相等价的是()(本题分值:1分)
【正确答案】D
A.TYPE AB.TXT与DIR AB.TXT
B.DISKCOMP A:B:与COMP A:.* B:*.
C.TYPE AB.TXT>>XY.TXT与COPY AB.TXT XY.TXT
D.TYPE AB.TXT>XY.TXT与COPY AB.TXT XY.TXT
20.设A盘为启动盘,其目录结构为
根目录
DOS子目录 COMAND.COM
USER子目录 AUTOEXEC.BAT
其文件AUTOEXEC.BAT的内容如下:
MD \XYZ
CD \DOS\USER
则由A盘启动成功后,A盘的当前目录是()(本题分值:2分)
【正确答案】C
A.\DOS\USER
B.\XYZ
C.根目录
D.\DOS
21.C语言提供的合法关键字是()(本题分值:1分)
【正确答案】C
A.switch
B.cher
C.case
D.default
22.在C语言中,合法的字符常量是()(本题分值:1分)
【正确答案】B
A.′\084′
B.′\x43′
C.′ab′
D.′\0′
23.若已定义x和y为double类型,则表达式: x=1,y=x+3/2的值是()(本题分值:1分)
【正确答案】C
A.1
B.2
C.2.0
D.2.5
24.合法的数组定义是()(本题分值:1分)
【正确答案】D
A.int a[]=〃string〃;
B.int a[5]={0,1,2,3,4,5};
C.char a=〃string〃;
D.char a[]={0,1,2,3,4,5};
25.设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是()(本题分值:1分)
【正确答案】A
A.10<a<15
B.a==11||a==12||a==13||a==14
C.a>10&&a<15
D.!(a<=10)&&!(a>=15)
26.若t为double类型,表达式t=1,t+5,t++的值是()(本题分值:1分)
【正确答案】C
A.1
B.6.0
C.2.0
D.1.0
27.若有定义和语句:
char s[10];s=〃abcd〃;printf(〃%s\n〃,s);
则结果是(以下μ代表空格)()(本题分值:1分)
【正确答案】D
A.输出abcd
B.输出a
C.输出abcdμμμμμ
D.编译不通过
28.若有定义和语句:
int **pp,*p,a=10,b=20;
pp=&p;p=&a;p=&b;printf(〃%d,%d\n〃,*p,**pp);
则输出结果是()(本题分值:1分)
【正确答案】D
A.10,10
B.10,20
C.20,10
D.20,20
29.若有以下定义和语句:
int u=010,v=0x10,w=10;
printf(〃%d,%d,%d\n〃,u,v,w);
则输出结果是()(本题分值:1分)
【正确答案】A
A.8,16,10
B.10,10,10
C.8,8,10
D.8,10,10
30.若有以下定义和语句:
char c1=′b′,c2=′e′;
printf(〃%d,%c\n〃,c2-c1,c2-′a′+′A′);
则输出结果是()(本题分值:1分)
【正确答案】B
A.2,M
B.3,E
C.2,E
D.输出项与对应的格式控制不一致,输出结果不确定
31.若有定义:int a[3][4];,()不能表示数组元素a[1][1]。(本题分值:1分)
【正确答案】D
A.*(a[1]+1)
B.*(&a[1][1])
C.(*(a+1))[1]
D.*(a+5)
32.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是()(本题分值:1分)
for(i=5;i>0;i--)
for(j=0;j<4;j++){…}
【正确答案】A
A.20
B.24
C.25
D.30
33.若有以下定义和语句:
char *s1=〃12345〃,*s2=〃1234〃;
printf(〃%d\n〃,strlen(strcpy(s1,s2)));
则输出结果是()(本题分值:1分)
【正确答案】A
A.4
B.5
C.9
D.10
34.若有以下定义和语句:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则不能表示a数组元素的表达式是()(本题分值:1分)
【正确答案】B
A.*p
B.a[10]
C.*a
D.a[p-a]
35.下面程序的输出结果是()(本题分值:2分)
【正确答案】C
A.k=3 a=2 b=3
B.k=3 a=3 b=2
C.k=2 a=3 b=2
D.k=2 a=2 b=3
36.下面程序的输出结果是()(本题分值:1分)
main()
{unsigned a=32768;
printf(〃a=%d\n〃,a);}
【正确答案】C
A.a=32768
B.a=32767
C.a=-32768
D.a=-1
37.执行下面语句后的输出结果为()(本题分值:1分)
int i=-1;
if(i<=0) printf(〃****\n〃);
else printf(〃%%%%\n〃)
【正确答案】D
A.****
B.%%%%
C.%%%%c
D.有语法错误,不能正确执行
38.对于条件表达式(M)?(a++):(a--),其中的表达式M等价于()(本题分值:1分)
【正确答案】C
A.M==0
B.M==1
C.M!=0
D.M!=1
39.下述程序段的输出结果是()(本题分值:1分)
int x=10;
int7nbspy=x++;
printf(〃%d,%d〃,(x++,y),y++);
【正确答案】A
A.11,10
B.11,11
C.10,10
D.10,11
40.若有以下的定义:
int a[]={1,2,3,4,5,6,7,8,9,10},*p=a
则值为3的表达式是()(本题分值:1分)
【正确答案】A
A.p+=2,*(p++)
B.p+=2,*++p
C.p+=3,*p++
D.p+=2,++*p
41.假定所有变量均已正确说明,下列是程序段运行后x的值是()(本题分值:2分)
a=b=c=0;x=35;
if(!a) x--;
else if(b);
if(c) x=3;
else x=4;
【正确答案】B
A.34
B.4
C.35
D.3
42.在以下一组运算中,优先级最高的运算符是()(本题分值:2分)
【正确答案】C
A.<=
B.=
C.%
D.&&
43.若有以下定义和语句:
int w[2][3],(*pw)[3];pw=w;
则对w数组元素的非法引用是()(本题分值:2分)
【正确答案】A
A.*(w[0]+2)
B.*(pw+1)[2]
C.pw[0][0]
D.*(pw[1]+2)
44.若有以下程序片段: char str[ ]=〃ab\n\012\\\\〃; printf(〃%d〃,strlen(str));
上面程序片段的输出结果是()(本题分值:2分)
【正确答案】C
A.3
B.4
C.6
D.12
45.函数调用:strcat(strcpy(str1,str2),str3)的功能是()(本题分值:2分)
【正确答案】C
A.将串str1复制到串str2中后再连接到串str3之后
B.将串str1连接到串str2之后再复制到串str3之后
C.将串str2复制到串str1中后再将串str3连接到串str1之后
D.将串str2连接到串str1之后再将串str1复制到串str3中
46.以下对C语言函数的有关描述中,正确的是()(本题分值:2分)
【正确答案】A
A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.C程序中有调用关系的所有函数必须放在同一个源程序文件中
47.以下叙述中不正确的是()(本题分值:2分)
【正确答案】C
A.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值
B.在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C中,外部变量的隐含类别是自动存储类别
D.在C中,函数形参可以说明为register变量
48.设有以下定义或语句,则输出的结果是(用small模式编译,指针变量占2个字节)()(本题分值:2分)
struct date
{long *cat;
struct date *next;
double dog;
}too;
printf(〃%d〃,sizeof(too));
【正确答案】D
A.20
B.16
C.14
D.12
49.设有定义:struct sk
{int a;float b;}data,*p;
若有p=&data;,则对data中的a域的正确引用是()(本题分值:2分)
【正确答案】B
A.(*p).data.a
B.(*p).a
C.p->data.a
D.p.data.a
50.以下对枚举类型名的定义中正确的是()(本题分值:2分)
【正确答案】B
A.enum a={one,two,three};
B.enum a{one=9,two=-1,three};
C.enum a={〃one〃,〃two〃,〃three〃};
D.enum a{〃one〃,〃two〃,〃three〃};
二、填空题(每空2分,共40分)请将答案分别写在答题卡中序号【1】至【20】的横线上,答在试卷上不得分。
1、与十进制数101等值的二进制数为。(本题分值:2分)
【正确答案】
【1】1100101
2、DOS命令分为内部命令与外部命令,XCOPY命令属于命令。(本题分值:2分)
【正确答案】
【2】外部
3、设当前盘为A盘,当前系统提示符为“>”,在不改变当前盘的情况下,显示C盘的当前目录路径,应使用命令。 (本题分值:2分)
【正确答案】
【3】CD C:
4、自动批处理文件名必须是。(本题分值:2分)
【正确答案】
【4】AUTOEXEC.BAT
5、设在当前盘当前目录下有两个文件W.TXT与P.TXT,现要将文件P.TXT连接到文件W.TXT的后面,若使用COPY命令,则完整的命令为。(本题分值:2分)
【正确答案】
【5】COPY W.TXT+P.TXT W.TXT
6、表示条件10<x<100或x<0的C语言表达式是。(本题分值:2分)
【正确答案】
【6】(x>10&& x<100)||x<0
或(10<x&&x<100)||x<0
或x<0 ||(x>10&&x<100)
或0>x ||(10<x&&x<100)
7、以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最笾怠G胩羁铡?br> #define N 3
#define M 4
void LineMax(int x[N][M])
{ int i,j,p;
for(i=0;i<N;i++)
{p=0;
for(j=1;j<M;j++)
if(x[i][p]<x[i][j]) ;
printf(〃The max value in line is %d\n〃,);
}
}
main()
{ int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};
;
}
(本题分值:6分)
【正确答案】
【7】p=j
【8】x[i][p]
【9】LineMax(x)
8、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。
main()
{float x[1000],sum=0.0,ave,a;
int n=0,i;
printf(〃Enter mark:\n〃);scanf(〃%f〃,&a);
while(a>= 0.0 && n<1000)
{sum+=;x[n]=;
n++; scanf(〃%f〃,&a);
}
ave= ;
printf(〃Output:\n〃);
printf(〃ave=%f\n〃,ave);
for(i=0;i<n;i++)
if() printf(〃%f\n〃,x[i]);
}
(本题分值:8分)
【正确答案】
【10】a
【11】a
【12】sum/n或sum/(float)n或sum/(double)n
【13】x[i]<ave或!(x[i]>=ave)或ave>x[i]
9、执行以下程序,输入-10的结果是,输入5的结果是,输入10的结果是,输入30的结果是。
(本题分值:8分)
【正确答案】
【14】0
【15】5
【16】10
【17】5
10、以下程序的功能是。
main()
{int num[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};
int sum=0,i;
for(i=0;i<10;i++)
if(num[i]>0)
sum=num[i]+sum;
printf(〃sum=%6d〃,sum);
}
(本题分值:2分)
【正确答案】
【18】计算数组num中大于零的数据之和
11、以下程序可以把从键盘上输入十进制数(long型)以二到十六进制数的形式输出,请填空。
#include
main()
{char
b[16]={′0′,′1′,′2′,′3′,′4′,′5′,′6′,′7′,′8′,′9′,′A′,′B′,′C′,′D′,′E′,′F′};
int c[64],d,i=0,base;
long n;
printf(〃Enter a number:\n〃); scanf(〃%1d〃,&n);
printf(〃Enter new base:\n〃); scanf(〃%1d〃,&base);
do
{c[i]=;
i++;
n=n/base;
}while(n!=0);
printf(〃The result is:\n〃);
for(--i;i>=0;--i)
{?d=c[i];
printf(〃%c〃,b);
}
}
(本题分值:4分)
【正确答案】
【19】n%base
【20】 [d]
求大神指教几个C语言题目.100财富等着你
#incclude
#include
int main()
{
int a,b;
while(~scanf("%d%d",&a,&b))
{
printf("%d\n",a+abs(b));
}
return 0;
}
#include
int main()
{
int a,b,c;
while(~scanf("%d%d%d",&a,&b,&c))
{
printf("%d\n",a+b+c);
}
return 0;
}题太简单了,我就写了前两个,没太多时间写了,如果其他的题你不会的话,可以问我,那时我再帮你写吧
1.用户从键盘输入变量a和变量b的值,计算a+|b|
#include
#include
/*库函数fabs求绝对值在他里面*/
int main(void)
{
double a,b,sum;
scanf("%lf%lf",&a,&b);
sum=a+fabs(b);
printf("%lf + |%lf| = %lf\n",a,b,sum);
return 0;
}
2.编写程序实现用户输入三个整数,求出3个整数的和并输出
#include
int main(void)
{
int a,b,c,sum;
scanf("%d%d%d",&a,&b,&c);
sum=a+b+c;
printf("%d + %d + %d = %d\n",a,b,c,sum);
return 0;
}
3.编程计算定期存款本利之和
#include
int main(void)
{
double rate,capital,deposit;
int n,i;
printf("输入存款的年利率rate、存款期n和存款本金capital :");
scanf("%lf%d%lf",&rate,&n,&capital);
deposit=capital;
for(i=1;i<=n;i++)
deposit=deposit*(1+rate/100);
printf("%d年后的本利之和deposit =%lf\n",n,deposit);
return 0;
}
4.设计一个函数,实现从键盘输入三个整数,判断能否构成三角形
的三边,如果能就计算输出三角形面积,按照下图给出的公式
计算三角形的面积,如果不能就打印出不能构成三角形的提示信息。
#include
#include
int main(void)
{
int a,b,c;
double s,d;
scanf("%d%d%d",&a,&b,&c);
if(a<=0||b<=0||c<=0)
{
printf("三边长有非正整数,不合要求\n");
return 1;
}
if(a+b<=c||a+c<=b||b+c<=a)
{
printf("三边长不符合构成三角形的要求,有一边过长\n");
return 2;
}
d=(double)(a+b+c)/2;
s=sqrt(d*(d-a)*(d-b)*(d-c));
printf("三边长为%d,%d,%d的三角形面积为 %lf\n",a,b,c,s);
return 0;
}
5.编程实现实现如下功能:输入三个班的10名同学的c语言课程成绩,编程分别求三个班的成绩的最高分,成绩的最低分,平均成绩并输出
#include
int main(void)
{
int a[3][10];
int best[3];
int bad[3];
double ave[3];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<10;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{
ave[i]=best[i]=bad[i]=a[i][0];
for(j=1;j<10;j++)
{
if(best[i]
<a[i][j])best[i]=a[i][j];
if(bad[i]>a[i][j])bad[i]=a[i][j];
ave[i]=ave[i]+a[i][j];
}
ave[i]=ave[i]/10;
}
for(i=0;i<3;i++)
printf(" %d 班的最高成绩 %d,最低成绩 %d,平均成绩 %.2lf\n",i+1,best[i],bad[i],ave[i]);
return 0;
}
6.编写完整程序实现如下功能:输入一个整数,判断它能否被3,5,7整除
#include
int main(void)
{
int i;
scanf("%d",&i);
if(i%3==0&&i%5==0&&i%7==0) /*判断整除的条件是取模是否等于0*/
printf("%d 可以被3,5,7整除\n",i);
else
printf("%d 不能被3,5,7整除\n",i);
return 0;
}
7.编写按收入计算税费的程序。
#include
int main(void)
{
int x;
double y;
scanf("%d",&x);
if(x<=800)
y=0;
else if(x>800&&x<=1200)
y=(double)(x-800)*5/100;
else if(x>1200&&x<=2000)
y=(double)(x-1200)*8/100;
else
y=(double)(x-2000)*20/100;
printf("%d 税费 %lf\n",x,y);
return 0;
}
8.while循环结构编程练习--编写程序解决如下问题,假定
2012年中国人口为13.39724852亿,如果以每年1.4%的速
度增长,多少年后中国人口达到或超过20亿。
#include
int main(void)
{
double x;
int i;
i=0;
x=13.39724852;
while(x<20)
{
x=x*(1+1.4/100);
i++;
}
printf("%d 年后中国人口达到或超过20亿\n",i);
return 0;
}
9.编写程序,求累加和1+2+3+…..+n.并输出,n由用户输入
#include
int main(void)
{
int n,i,sum;
sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum+i;
printf("1+2+3+…..+%d = %d\n",n,sum);
return 0;
}
10.
/*
while循环结构编程练习——计算需要存款多少年定期存款本金和利息利之和
才达到额定数额500000。要求银行定期存款的年利率由用户输入,年利率用变量
rate存放;存款本金由用户输入,本金用变量capital存放,单位为元;用户输入
打算存款的时间(以年为单位),用变量n存放存款年限,试编程计算多少年后年
后的本金和利息之和达到500000元,本金和利息之和用变量deposit存放。如果用
户一次性存款超过了500000元,输出“你已是一次性存款超过50万的大客户”和
用户输入的存款年限到期后的本金和利息之和。
*/
#include
int main(void)
{
double rate,capital,deposit;
int n,i,flag=1;
printf("输入存款利率,存款本金,存款年限: ");
scanf("%lf%lf%d",&rate,&capital,&n);
deposit=capital;
if(capital>=500000)
printf("你已是一次性存款超过50万的大客户\n");
else
{
i=0;
while(deposit<500000)
{
deposit=deposit*(1+rate/100);
i++;
}
}
printf("%d 年后 本金和利息之和达到500000\n",i);
deposit=capital;
for(i=1;i<=n;i++)
{
deposit=deposit*(1+rate/100);
}
printf("%d 年后 本金和利息之和 %.2lf\n",n,deposit);
return 0;
}
</a[i][j])best[i]=a[i][j];
请教一个基础c++程序设计题目
一、填空题(每小题1分,共15分)
1、 一个C源程序中至少应包括一个 。
2、 在C语言中,输入操作是由库函数 完成的,输出操作是由库函
数 完成的。
3、 实型常量的两种表示方式为 和 。
4、 若k为整型变量且赋值10,请写出运算k++后表达式的值 和变量
的值 。
5、 字符串“ABC”在计算机内存中占 个字符。
6、 设y是int型变量,请写出“y是奇数”的表达式 。
7、 C语言规定预处理指令必须以 开头。
8、 用来定义符号常量的预处理指令是 。
9、 对于数组的定义“类型声明符 数组名[常量表达式]…”,其中常量表达式
可以包括 和 ,但不能包括 。
10、变量的指针,其含义是指该变量的 。
二、选择题(每小题2分,共60分)
1、一个C程序的执行是从 。
A、本程序的main函数开始,到main函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的main函数开始,到本程序文件的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序main函数结束。
2、一个C语言程序是由 。
A、一个主程序和若干个子程序组成的。
B、函数组成。
C、若干过程组成。
D、若干子程序组成。
3、执行下列程序片段时输出结果是 .
Float x=-1023.012;
Printf(“\n%8.3f”,x);
Printf(“%10.3f”,x);
A、1023.012, -1023.012 B、-1023.012,-1023.012
C、1023.012,-1023.012 D、-1023.012,1023.012
4、若定义x为double型变量,则能正确输入x值的语句是 。
A、scanf(“%f”,x); B、scanf(“%f”,&x); C、scanf(“%1f”,&x); D、scanf(“%5.1f”,&x);
5、以下选项中正确的整型常量是 。
A、12 B、-20 C、1,000 D、4 5 6
6、以下各选项中不合法的用户标识符是 。
A、_123 B、printf C、A$ D、Dim
7、不合法的八进制数是 。
A、0 B、028 C、077 D、01
8、字符型数据在内存中是以 的二进制形式存储的。
A、原码 B、补码 C、ASCⅡ D、反码
9、C语言中不合法的字符串常量是 。
A、“1234” B、‘y=’ C、“\n\n” D、“ABCD”
10、以下程序的运行结果是 。
Main()
{
Int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d”,a,b);
}
A、6,1 B、2,1 C、6,0 D、2,0
11、C语言程序的3种基本结构是 。
A、顺序、选择、循环 B、递归、循环、转移
C、嵌套、递归、顺序 D、循环、转移、顺序
12、在C语言中if语句可以和 关键字配合使用来构成分支选择语句。
A、else B、break C、goto D、int
13、如果ch=‘c’,则!ch的值为 。
A、真 B、假 C、不能确定
14、以下程序段的输出结果是 。
Main()
{
int a=2,b= -1,c=2;
if(a
<b)
if(b<0)c=0;
else c+=1;
printf(“%d\n”,c);
}
A、0 B、1 C、2 D、3
15、以下程序段的输出结果是 。
int k,j,s;
for(k=2;k<6;k++)
{
s=1;
for(j=k;j<6;j++) s+=j;
}
Printf(“%d\n”,s);
A、9 B、6 C、11 D、10
16、函数的目的之一是 。
A、提高程序的执行效率 B、提高程序的可读性
C、减少程序的篇幅 D、减少程序文件所占内存
17、以下正确的函数定义形式是 。
A、double fun(int x,int y) B、double fun(int x;int y)
C、double fun(int x,int y); D、double fun(int x, y)
18、下列函数调用中,不正确的是 。
A、max(a,b) B、max(3,a+b) C、max(3,5) D、int max(a,b)
19、以下正确的说法是 。
A、实参和与其对应的形参各占用独立的存储单元
B、实参和与其的形参共占一个存储单元
C、只有当实参和与其的形参同名时才共占用存储单元
D、形参是虚拟的,不占用存储单元
20、若调用一个函数,且此函数中没有return语句,则正确的说法是 。
A、没有返回值
B、返回若干个系统默认值
C、能返回一个用户所希望的函数值
D、返回一个不确定的值
21、在宏定义“#define MAX 100”,宏名MAX代替的是 。
A、实型数 B、整型数 C、常量 D、字符串
22、用#define命令定义的符号常量在程序运行期间 。
A、可以再次赋值,使用方法如同变量一样。
B、不可改变 C、不能确定 D、以上的说法都不正确
23、若有声明int a[10],则对数组元素的正确引用是 。
A、a[10] B、a[3.5] C、a(5) D、a[10-10]
24、执行下面的程序段后,变量k中的值为 。
int k=3,s[2];
s[0]=k;
k=s[1]*10
A、不确定 B、33 C、30 D、40
25、在C语言中,数组下标的数据类型允许是 。
A、整型常量 B、整型表达式 C、整型常量或整型表达式 D、任何类型的表达式
26、若有以下定义:int x*pb;则以下正确的赋值表达式是 。
A、pb=&x B、pb=x C、*pb=&x D、*pb=*x
27、以下运算符中优先级最低的是 。
A、&& B、& C、‖ D、|
28、表达式0x13&0x17的值是 。
A、0x17 B、0x13 C、0xF8 D、0xEC
29、系统的标准输入文件是指 。
A、键盘 B、显示器 C、软盘 D、硬盘
30重载函数在调用时选择的依据中,错误的是 。
A、参数个数 B、参数的类型 C、函数名字 D、函数的类型
三、写出下列程序的执行结果(每小题3分,共15分)
#include
main()
{
int a=325;
double x=3.1415926;
printf(“a=%+6d x=%+e\n”,a,x);
#include
main()
{
char c1=’a’;
int b=1,c;
c=c1+b;
printf(“%c\n”,c1);
printf(“%d\n”,b);
printf(“%d”,c);
#include
main()
{
int x= -5,y;
y=(x>=0)?x:-x;
printf(“%d\n”,y);
}
#include
main()
{
int i=0,sum=1;
do{
sum+=i++;
}
while(i<5);
printf(“%d\n”,sum);
}
main()
{
int x=2;
while(x--);
printf(“%d\n”,x);
}
四、编程题(每小题5分,共10分)
1、 使用双层for循环打印下面的图形。
*****
*****
*****
2、 求50以内不能被12整除的数。
相当的基础哈~色即是空~空即是色~
我学basic的
</b)
C语言程序设计卷子。各位大哥帮帮忙,我只有120分钟。
1L给的程序是 C++的 不是C的 选择题也不太对吧 switch 中不能用 continue,我刚试过的
还有我选择踢 基本都是 编译 运行的 输出的结果
程序题 全部编译运行过
一、单项选择题
1.B 2.B 3.C 4.C 5.B 6.D 7.D 8.D 9.D 10.B
二、简答题
1.
#include<>和 #include""
#include<>是在系统默认的头文件库中搜索,
#include"" 是在用户的目录下搜索
2.
一种用于储存变量地址的数据类型
3.
C语言中可以按文本(ASCII文件)或者二进制方式处理数据文件,文本文件通常用于人们的直接阅读,二进制文件则用于保存程序在运行过程中用到的二进制数据,而且对二进制文件的处理效率也比对ASCII文件要高
4.
文件包含指令(#include)
宏定义指令(#define)
条件编译指令(#ifdef、#endif、#elif、#if等)
宏作用域结束指令(#undef)
定义行号指令(#line)
产生错误信息指令(#error)
5.
switch(表达式)
{
case 值1:表达式1;
case 值2:表达式2;
case 值3:表达式3;
...
case 值n:表达式n;
default:表达式n+1;
}
执行过程 如果是m(1<=m<=n+1),则从m对应的表达式m开始,
执行表达式m,表达式m+1,表达式m+2,...表达式n,表达式n+1
6.略
三、编程题
1.
#include
#efine n 30
int main()
{
char ch;
int cnt=0;
scanf("%c",&ch);
while(ch!='\n') {
if(ch<='9'&&ch>='0')
cnt++;
scanf("%c",&ch);
}
printf("%d\n",cnt);
return 0;
}
2.
#include
#define N 30
int main()
{
int i;
double sum=0;
for(i=1;i<=N;i++){
sum+=(double)1/(i*(i+1));
printf("%d__%lf\t",i,sum);
}
return 0;
}
3.
#include
int main()
{
int i,j;
for(i=0;i<4;i++){
for(j=0;j
<i;j++)
printf(" ");
for(j=1;j<8-i*2;j++){
printf("%d",j);
}
printf("\n",j);
}
return 0;
}
4.
#include
#define N 20
int main()
{
int i;
long sum=0;
for(i=1;i<=N;i++){
sum+=i*(i+1)*(i+2);
}
printf("%ld\t%ld",sum,(i-1)*i*(i+1));
return 0;
}
5.
#include
#define N 100
int main()
{
int i,j,k;
float num[N],tmp;
for(i=0;i
<n;i++){
scanf("%f",&num[i]);
}
for(i=0;i
<n-1;i++)
for(i=i;i
<n;i++)
if(num[i]
<num[j]){
tmp=num[i];
num[i]=num[j];
num[j]=tmp;
}
for(k=0;k
0;k++);
for(i=0;i
<k-1;i++)
for(i=i;i
<k;i++)
if(num[i]>num[j]){
tmp=num[i];
num[i]=num[j];
num[j]=tmp;
}
return 0;
}
6.略
第四题应该选 C,第五题应该选 B,第六题应该选 D,第七题应该选 D,第九题应该选 D,第十题应该选 A
baadd,abdad
第一题
#include
int main()
{
char szTest[100];
int i=0;
int count[5]={0};//count[0]数字、count[1]大写字母、count[2]小写字母、count[3]空格、count[4]其它字符,初始化为0
scanf("%s",&szTest);
while(szTest[i]!='\0')
{
if(szTest[i]>='0' && szTest[i]<='9')
count[0]++;
else if(szTest[i]>='A' && szTest[i]<='Z')
count[1]++;
else if(szTest[i]>='a' && szTest[i]<='z')
count[2]++;
else if(szTest[i]==' ')
count[3]++;
else
count[4]++;
i++;
}
printf("数字%d 大写字母%d 小写字母%d 空格%d 其它字符%d \n",count[0],count[1],count[2],count[3],count[4]);
return 0;
}
第二题
long f()
{
int i;
long sum;
sum = 0;
for (i=1 ; i<=30 ; i ++)
{
sum += i*(i+1)*(i+2);
}
return sum;
}
第三题
#include
using namespace std;
main(){
int i,j;
for(i=7;i>=1;i--)
{for(j=4;j>=1;j--)
{
printf(j);
printf(\n);
}}
第四题
long t()
{
int i;
long sum;
long num1;
long num2;
long num;
sum = 0;
for (i=1 ; i<=20 ; i ++)
{
sum += i*(i+1)*(i+2);
}
for(i=1;i=19;i++)
{
num1 += i*(i+1)*(i+2);
}
for(i=1;i=20;i++)
{
num2 += i*(i+1)*(i+2);
}
num=num2-num1;
return num;
}
第五题
#include "stdio.h"
#define N 10
main()
{
int i,j,k,a[N],t;
printf("请输入100个整数:\n");
for(i=0;i
<n;i++)
scanf("%d",&a[i]);
for(i=0;i
<n;i++)
for(j=i+1;j
<n;j++)
if(a[i]
<a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
for(k=0;a[k]>0;k++);
for(i=0;i
<k;i++)
for(j=i+1;j
<k;j++)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
for(i=0;i
<n;i++)
printf("%d ",a[i]);
}
指针与C语言
大家都认为,c语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是c语言的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有c语言的指针才能算指针。basic不支持指针,在此不论。其实,pascal语言本身也是支持指针的。从最初的pascal发展至今的object pascal,可以说在指针运用上,丝毫不会逊色于c语言的指针。
C语言的数据文件:
C语言中可以按文本(ASCII文件)或者二进制方式处理数据文件,文本文件通常用于人们的直接阅读,二进制文件则用于保存程序在运行过程中用到的二进制数据,而且对二进制文件的处理效率也比对ASCII文件要高。
预处理指令:
#空指令,无任何效果
#include包含一个源代码文件
#define定义宏
#undef取消已定义的宏
#if如果给定条件为真,则编译下面代码
#ifdef如果宏已经定义,则编译下面代码
#ifndef如果宏没有定义,则编译下面代码
#elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#endif结束一个#if……#else条件编译块
#error停止编译并显示错误信息
switch语句的语法如下(switch,case和default是关键字):
switch ( controllingExpression )
{
case constantExpression :
statements
break;
case constantExpression :
statements
break;
...
default :
statements
break;
}
</n;i++)
</k;j++)
</k;i++)
</a[j])
</n;j++)
</n;i++)
</n;i++)
</k;i++)
</k-1;i++)
</num[j]){
</n;i++)
</n-1;i++)
</n;i++){
</i;j++)
《C语言程序设计》试题2 求解 请勿乱填 非常感谢
二、填空题(20分)
21.3。
22.union 。
23.int a[10] = {0};
24.fopen()
25.&&,||,!
26.#include
27.宏定义。
28.65,B。
29.按行存放 。
30.47 。
三、写出程序执行结果(20分)
31. 执行的结果是:9,11,9,10
32. 执行的结果是:
1!=1
2!=2
3!=6
4!=24
5!=120
33. 执行的结果是:
ABCD
BCD
CD
D
34. 执行的结果是:
8 7 6
21.若w=1,x=2,y=3,z=4;则条件表达式w>x?w:y
<z?y:z的结果为__。
22.共用体类型的标志是 关键字。
23.定义整型一维数组a含有10个元素且初始化为0的语句是___。
24.在C语言中,打开文件的函数名是__ 。
25.在C语言中“逻辑运算符”有三种,它们分别是__ 。
26.若在C程序中使用到库函数〃sqrt(36) 〃,应在程序开头写上文件包含命令:
27.在C语言中,编译预处理功能主要包括:文件包含、条件编译和___。
28.语句printf(〃%d,%c〃, ˊAˊ, ˊAˊ+1)的输出结果是_____。
29.在C语言中,二维数组元素在内存中的存放形式是 。
30.十六进制0x2f表示的十进制数是__ 。
三、写出程序执行结果(20分)
31. main ( )
{ int a, b, m, n ;
a=8;
b=10;
m=++a;
n=b++;
printf(〃%d,%d,%d,%d〃, a, b, m. n) ;
}
执行的结果是:
32. int fac( int n)
{ static int f=1; 执行的结果是:
f=f*n;
return(f);
}
main()
{ int i;
for(i=1;i<=5;i++)
printf("%d!=%d\n",i,fac(i));
}
33. main()
{ char s[]="ABCD",*p;
for(p=s;p
<s+4;p++) printf("%s\n",p);
}
执行的结果是:
34. void uu(int m){
printf("%3d" ,m%10);
if(m/10 != 0)
uu(m/10);
}
main(){
uu(678);
}
执行的结果是:
问题补充:星期5要用的~非常急~请回的帮帮忙~
21. 3
22.union
23.int a[10]={0};
24.fopen (不好意思,还没学,查了一下表)
25.&& || !
26.#include
27.没学
28.65,B
29.按行排放
30.47
31.9,11,9,10
32.1!=1
2!=2
3!=6
4!=24
5!=120
33.ABCD
BCD
CD
D
34. 8 7 6
二、填空题(20分)
21.若w=1,x=2,y=3,z=4;则条件表达式w>x?w:y
<z?y:z的结果为_3_。
22.共用体类型的标志是 union 关键字。
23.定义整型一维数组a含有10个元素且初始化为0的语句是_int a[10]=0;__。
24.在C语言中,打开文件的函数名是_fopen()_ 。
25.在C语言中“逻辑运算符”有三种,它们分别是与&& 或|| 非!__ 。
26.若在C程序中使用到库函数〃sqrt(36) 〃,应在程序开头写上文件包含命令: math.h
27.在C语言中,编译预处理功能主要包括:文件包含、条件编译和 __宏定义;___。
28.语句printf(〃%d,%c〃, ˊAˊ, ˊAˊ+1)的输出结果是_65,B___。
29.在C语言中,二维数组元素在内存中的存放形式是 按行存放 。
30.十六进制0x2f表示的十进制数是__639_ 。
三、写出程序执行结果(20分)
31. main ( )
{ int a, b, m, n ;
a=8;
b=10;
m=++a;
n=b++;
printf(〃%d,%d,%d,%d〃, a, b, m. n) ;
}
执行的结果是:
9,11,9,10
32. int fac( int n)
{ static int f=1; 执行的结果是:
f=f*n;
return(f);
}
main()
{ int i;
for(i=1;i<=5;i++)
printf("%d!=%d\n",i,fac(i));
}
1!=1
2!=2
3!=6
4!=24
5!=120
33. main()
{ char s[]="ABCD",*p;
for(p=s;p
<s+4;p++) printf("%s\n",p);
}
执行的结果是:
ABCD
BCD
CD
D
34. void uu(int m){
printf("%3d" ,m%10);
if(m/10 != 0)
uu(m/10);
}
main(){
uu(678);
}
执行的结果是:
8 7 6
</z?y:z的结果为_3_。
</z?y:z的结果为__。