c语言程序设计题
A. 求解c语言程序设计题
完整的fun函数代码如下:
int fun(STU a[], int n, STU h[]) {
int i, k = 0;
double avg = 0;
for (i = 0; i < n; i++) {
a[i].sum = a[i].s1 * 0.7 + a[i].s2 * 0.3;
avg += a[i].sum; // 先计算总分
}
avg = avg / n; // 再计算平均分
for (i = 0; i < n; i++) {
if (a[i].sum > avg) { // 统计平均分以上的学生
strcpy(a[i].level, "均分以上");
h[k++] = a[i];
}
}
return k;
}
运行结果如下:
可见成功输出了平均分以上的学生信息,望采纳~
B. 《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.代码文件 :包含指令不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c,.hpp,.cpp,.hxx,.cxx等,甚至.txt,.abc等等都可以.
2. 赋值
3. x++
4. p[4] 因为sizeof(int) 的值为4,实际上是定义了一个整形数组
5. if
6. DataType
7. 实参变量
8. weirong18
9. float
10. 33 因为++运算符优先级高于* ,故先计算++y,然后将y的值与3相乘得到33
11. (1) ch>='a' && ch<='z'
(2) (x==0 || x==1) && (y>=1.0 && y<=6.0)
12. (1) int array[10] = {9,4,7,49,32,-5};
(2)0 到 9
(3)scanf("%d",&array[1]);
(4)array[0] = 39;
(5)array[0] = array[5]+array[3];
D. c语言程序设计编程题
第一个:
#include<stdio.h>
int main()
{
double a;
scanf("%lf",&a);
if(a<600-1e-7)
printf("600\n");
else
printf("%lg\n",a+a*0.1);
return 0;
}
第二个:
#include<stdio.h>
int main()
{
int a,b,t;
scanf("%d%d",&a,&b);
if(a>b)
{
t=a;
a=b;
b=t;
}
printf("%d %d\n",a,b);
return 0;
}
E. C语言程序设计试题
1. 一条简单语句是以_____;___字符作为结束符的,一条复合语句是分别以___{_____字符和_____}___字符作为开始符和结束符的。
2. 任何一个C++程序至少且只能包含一个_____主___函数,且程序总是从这个函数开始执行,不论这个函数的位置如何。一个函数定义由 函数头 和 函数体 两部分组成。
3. C++头文件和源程序文件的扩展名分别为 .h 和 .cpp。
4. cout与操作符__<<_配合使用才能显示输出,cin与操作符_>>_配合使用才能实现输入。
5. 数据类型int,char,bool,float,double, int * 等的类型长度分别为___4_、1_、_1_、_4、_8___和_____4___。
6. 数值常量46、0173和0x62对应的十进制值分别为_____46___、____123____和______98__。
7. 字符串”It\’s\40a\40C++programe!”中包含有______19____个字符。
8. 若x=5,y=10,则计算y*=++x表达式后,x和y的值分别为____6____和____60____。
9. 若x=25,则计算y=x--表达式后,x和y的值分别为____24____和__25______。
10. 假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值分别为___4_____和_____1___。
11. 假定x=64,y=88,则x<<2和y>>2的值分别为____128____和___44_____。
12. 假定x是一个逻辑量,则x&&true的值与_____x___的值相同,x||false的值也与_____x___的值相同。
13. 假定x是一个逻辑量,则x&&!x和x||!x的值分别为____0____和____1____。
14. 假定x=10,则表达式x<=10?20:30的值为____20____。
15. 表达式sqrt(81)和pow(6,3)的值分别为________9______和_________216_____。
16. 数学算式(1+x)sin48°和axbex+1对应的算术表达式分别为___(1+x)*sin(48*3.14159/180)_____和_____a*pow(x,b)*exp(x+1)___。
17. 逻辑表达式:a>=x||b>2*y+10的相反式为:___~(a<=x&&2*y+10)_____。
18. 在嵌套的if语句中,每个else关键字与它前面最接近的____if____关键字相配套。
19. 在for语句中,假定循环体被执行次数为n,则<表达式1>共被计算____n___次,<表达式2>共被计算____n____次,<表达式3>共被计算____n____次。
20. 执行for和while循环时,每次是先进行____条件____的判断,然后再执行____循环___,执行do循环时则相反。
另外,站长团上有产品团购,便宜有保证
F. c语言程序设计习题!!10道
1. 在C程序中,只能用于整型变量的运算符是___ 求余(%)___。
2. 在C语言中,char类型变量占 2 个字节。
3. 若a已定义为double类型,请写出从键盘给a输入数据的语句 scanf("%lf",&a); 。
4. 为使以下程序能正确运行,请填空。
#include<stdio.h>
#include<math.h>
main()
{ double x, y;
scanf("%lf%lf",&x,&y);
printf("y=%f\n", pow(x,y));}
5. 以下程序执行后的输出结果是 -2 。
main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x); }
6. 以下程序的输出结果是 10 20 0 。
main()
{ int a,b,c;
a=10; b=20; c=(a%b<1)||(a/b>1);
printf("%d %d %d\n",a,b,c); }
7. 以下程序中调用fun函数,对主函数x和y中的值进行对调。请填空。
void fun( double *a, double *b)
{ double x;
x=*a; *a=*b ; *b=x ; }
main()
{ double x,y;
printf(“Enter x, y : “); scanf(“%lf%lf”,&x,&y);
fun( x,y);
printf(“x=%f y=%f\n”,x,y );}
8. C语言规定:字符串以 '\0' 作为结束标志。
9. 以下程序的输出结果是 3 。
long fun( int n)
{ long t;
if ( n==1 || n==2 ) t=1;
else t=fun(n-1) + fun(n-2);
return ( t );
}
main( )
{ printf(“%d\n”,fun(4) );}
10. 设有定义:
struct date
{ int year, month, day ; } d1;
请写出利用输入语句,为变量d1中的year成员从键盘输入数值的语句 scanf ("%d",&(d1.year)); 。
G. 谁给一些 简单的C语言程序设计题 ,
1.
已知
a,b
均是整型变量,写出将
a,b
两个变量中的值互换的程序来。
2.
若
a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2='b'
。想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。
a=
3
b=
4
c=
5
x=1.200000,y=2.400000,z=-3.600000
x+y=
3.60
y+z=-1.20
z+x=-2.40
u=
51274
n=
128765
c1='a'
or
97(ASCII)
c2='b'
or
98(ASCII)
3.
设圆半径
r=1.5
,圆柱高
h=3
,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
4.
编程序:用
getchar
函数读入两个字符给
c1,c2
,然后分别用
putchar
和
printf
函数输出这两个字符。并思考以下问题:
(1)
变量
c1,c2
应定义为字符型或整型?或两者皆可?
(2)
要求输出
C1
和
C2
值的
ASCII
码,应如何处理?用
putchar
函数还是
printf
函数?
(3)
整型变量与字符型变量是否在任何情况下都可以互相替代?如:
char
c1,c2
与
int
c1,c2
是否无条件地等价?
H. 程序设计基础C语言题
能将高级语言编写的源程序转换成目标程序的是(B、编译程序)。
以下类型选项中,不属于C语言的类型是(A、signed short)
下列叙述中,合法的C语言赋值语句是(B、i++;)。
若变量c为char类型,能正确判断出c为小写字母的表达式为(D、(c>='a')&& (c<='z'))。
若有int a[4][5];则数组a包含的元素个数是(D、20)。
在主函数中定义的变量(A、只有主函数中有效。)。
若有func((v1,v2),(v3,v4,v5),v6)调用,说明函数func有(A、3)个参数。
若有int a[10];*p=a;,则(C、p++可以使p指向下一元素,即a[1]的首地址。)。
设有数组定义:char array[]="Chian";,则数组所占有的存储空间为(B、6)个字节。
下列函数中,不能用于对文件进行输入输出操作的是(B、printf() )。
I. C语言程序设计题
第一题已经有人给出答案了
2比较麻烦。给你试试。我没调试
#include <stdio.h >
void main()
{
int x;
double i,j,pi,s;
printf("enter the x\n");
scanf(" x=%d ",&x );
if(x>1)
{
printf("x is wrong, puts x again\n"); //*根据你题目的意思我理解的是第一项1就是最大的项,如果X比一都要大的话就是无限循环了。*//
scanf("x=%f",&x);
}
// getchar();
s=0;
i=1;
j=1;
while((1/j)>x)
{
s=i*(1/j)+s;
i=-i;
j=j+2;
}
pi=4*s;
printf("x=%f ,f(x)=%f\n",x,pi);
}
---------3---------------------
#include <stdio.h>
#include <string.h>
/*合并两个字符串s和t(串长不超过10个字符),
s和t中都出现的剔除,组成新的字符串u按原字
符串顺序排列。如:当s="112345",t="26467"
时,u="1135667"。*/
void string(char *s,char *t,char *c)
{
char *s1=s,*t1=t;
int lengthA,lengthB;
int i,j,k,m,n;
i=j=k=0;
lengthA=strlen(s);
lengthB=strlen(t);
for(i=0;i<lengthA;i++)
{
m=0;
for(j=0;j<lengthB;j++)
{
if(*(s+i)!=*(t+j))
m++;
if(m==lengthB)
{
*(c+k)=*(s+i);
k++;
}
}
}
for(j=0;j<lengthB;j++)
{
n=0;
for(i=0;i<lengthA;i++)
{
if((*(t1+j)!=*(s1+i)))
n++;
if(n==lengthA)
{
*(c+k)=*(t1+j);
k++;
}
}
}
*(c+k)='\0';
printf("字符串u是:%s\n",c);
}
int main()
{
char a[10],b[10],c[20];
printf("输入字符串s:");
scanf("%s",&a);
getchar();
printf("输入字符串t:");
scanf("%s",&b);
printf("字符串s是:%s\n",a);
printf("字符串t是:%s\n",b);
string(a,b,c);
return 0;
}
}
------4--------------------------
#include <stdio.h>
#include <string.h>
#define NUMBER 10
main()
{
char a[NUMBER][10],t[10];
int i,j;
for(i=0;i<NUMBER;i++)
{
printf("请输入第%d个单词:",i+1);
gets(a[i]);
}
for(i=1;i<NUMBER;i++)
for(j=0;j<NUMBER-i;j++)
if(strcmp(a[j],a[j+1])>0)
{
strcpy(t,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],t);
}
for(i=0;i<NUMBER;i++)
puts(a[i]);
}
---------------5------------------------------
#include <stdio.h>
#include <stdlib.h>
static unsigned long count;
int fib(int x)
{
int r;
++count;
if(x==1||x==2)
return 1;
return fib(x-2)+fib(x-1);
}
int main()
{
int i,f;
for(i=1;i<20;i++)
{
count = 0;
f = fib(i);
printf("fib(%02d) gives %d after %lu iteration%s.\n",i,f,count,count==1 ? " ":"s");
}
return 0;
-----------------6----------------------------------------
#include<stdio.h>
void main()
{
float fac(int n);
int n;
float y;
printf("输入一个数:\n");
scanf("%d",&n);
y=fac(n);
printf("%d!=%f\n",n,y);
}
float fac(int n)
{
float f;
if(n<0) printf("error\n");
else
if(n==0||n==1) f=1;
else
f=fac(n-1)*n;
return(f);
}
-------------------7,8给你思路吧。
7:char *p = str;
if(*p == ' ')
strcpy(strtmp,str);
以后继续呢。完了反向输出吧。
8:同理。先暂存出现两次以上的字符。完了删去。整体挪数组元素。时间不够了。快断网了。就没办法给你写了
J. C语言程序设计题
15. 以下程序的输出结果是(D)。 main( ) { int a, b; for(a=1,b=1;a<=100;a++) { if(b>=10) break; if(b%3==1) { b+=3; continue;} } printf(“%dn”,a); }
A. 101
B. 6
C. 5
D. 4
16. 若整型变量a,b,c,d的值依次为:1,4,3,2,则条件表达式aq.Type = "1"; q.ObjectID[q.ObjectID.length] = "rdo_899f1843-0f05-47d1-a3fd-45c325b7d297_Response" q.Response[q.Response.length] = "Response"; q.Answer[q.Answer.length] = "";
A. 1
B. 2//没有看懂呵呵
C. 3
D. 4
17. 已知int x=23;则printf(x++*1/3)的输出结果是( D)。
A. 8
B. 7.66
C. 7.33
D. 7
//后置++是先做*1在/3后++,两个整形相除还是整形,并且是相当于求商
18. 有变量说明语句int a,b,c;,顺序执行下面语句: a=b=c=1; ++a||++b&&++c; 那么,变量b的值应是( B)。
A. 2
B. 1 //++a已经满足条件下面就被短路了
C. 0
D. 3
19. 下述语句执行后,变量k的值是(B )。 int k=1; while(k++〈10〉;
////////////////后置++是先比较和自加1.
A. 10
B. 11
C. 9
D. 为无限循环,值不定
20. 以下叙述错误的是( A)。
A. 用户定义的标识符允许使用关键字
B. 用户定义的标识符应尽量做到“见名知意”
C. 用户定义的标识符必须以字母或下划线开头
D. 在用户定义的标识符中,大、小写字母代表不同标识
21. 当把以下四个表达式用做if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是( D)。
A. k%2
B. k%2= =1
C. (k%2)!=0
D. !k%2= =1 //其他三个判断都是被二除余1
22. C语言提供的合法关键字是( C)。
A. default
B. Char
C. while
D. Switch
23. 设有说明:char a; int b; float c; 则表达式a+b-c值的数据类型为(C )。
A. char
B. int
C. float//整形与浮点型运算后变成浮点型
D. double
24. putchar函数可以向终端输出一个( C)。
A. 整数
B. 实数
C. 字符
D. 字符串
25. 若x的初值为10,则表达式(x>10?x+100 : x-10)的值是( b)。
A. 10
B. 0//x>10的话执行x+100,否则x-10;
C. 100
D. 1
注:全部经过程序验证的
//最佳答案呀呵呵