哪位大神给我一份c语言题库

作者&投稿:阎龚 (若有异议请与网页底部的电邮联系)
哪位大神有C语言题库~

1、/ 代表的是 除法。如果 a 和 b 都是整数,不是 float 等这种浮点数,所以结果只保留整数,所以 a/b 算出来是整数。
2、另外,% 代表的是取余数,即: 5%3 等于 1 余 2,结果就是 2

单选题
1. 以下叙述中正确的是  (1)  。  
   A.若e1、e2为变量,e为表达式,则
  e1=e2=e使得e1、e2都具有表达式e的值 。
  
  
   B.程序中不能定义与库函数名同名的变量。
   C.一个C源程序可放在多个文件中,但
  一个函数不能跨放在两个不同的文件中。
   D.C语言编译系统以函数为单位编译源程序。

2. 若a,b,c都是实型变量,则下列语句中除 (2)  之外,都可能得不到正确的计算结果。
  A.if(b*b-4*a*c==0) x1=x2=-b/(2*a);
    else x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a);

B.b=2.0e38+1.0-2.0e38;
C.a=456*768/2;
D.double define=1.0;
3. 以下正确的常量是  (3 )  。
  A.‘077’ B.‘\0x89’ C.3.14u D.‘\012’
4. 若已有声明“float x= -1234.5678; int m,n=4;”则执行“m=printf(“
%8.3f
”,x)/n;”语句后,
  变量m的值是 (4) 。
  A. 2 B. 3 C. 4 D. 5
5. 若已有声明“int x1; float x2; long x3; char x4;”,且以下选项均出现在switch语句中,其中正确
  的是 (5) 。
  A. case 1.1: scanf("%d",&x1);break;
B. case 1+2: scanf("%f",&x2); break;
   C. case 'x': 
    case 'y'-1: scanf("%ld",&x3); break;
D. case x4: scanf("%c",&x4); break;
6. 33.以下表达式中,能够作为“if(e) 语句”中判断条件表达式e 的是 (6) 。

 A. x==++(x+1) B. x+=++x||x++ C. x+1=z D. x%2.0!=0
7. 以下局部变量声明中,正确的是 (7) 。
  A.int x=0, void=1;      B.int x=1,y=2x;
  C.int x=2,y=sqrt(x);   D.int x=sqrt(y),y=4;
8. 在以下语句中,正确的是 (8) 。
   A.if(a>b)m=a;n=b;else m=b;n=a;
   B.if(a>b){m=a;n=b;else m=b;n=a;}
   C.if(a>b)m=a,n=b;else m=b,n=a;
   D.if(a>b){m=a;n=b;}else(a<=b){m=b;n=a;}
9.24.已知有声明:“char c=‘1’ ; int x=300 ; float t=35000 ; double d=3.1234567e10 ;”,则以下表达式
  求值时除 (9 ) 外,其结果都可能是不准确的。
  A. x=t/c B. t=d/x C. t=d/1e5f D. t=x+c
10.若有声明“int i,k=1; unsigned j;”,则下列语句执行时会出现无限循环的语句
  是 (10) 。

  A.for(j=15;j>0;j-=2) k++;

  B.for(j=0;j<15;j+=2) k++;
  
  C.for(i=0;i<15;i+=2) k++;

D.for(i=15;i>0;i-=2) k++;
  
11.已有声明“int x=2,y=1,z=0;”,以下表达式的值不为0的是 (11) 。
  A. x==(x=0,y=1,z=2)
B. z>y>x
C. x>y==1
D. x>(y=2)

12.若e1、e2和e3是表达式,以下选项中与语句while(e1){e2,e3;}功能等价的语句是 (12 ) 。
  A. for( ;e1;e3)e2; B. for( ;e1;e2)e3; C. for(e1;e2;e3); D. for(e1; e2, e3; );
13.已有声明“int x=3;”,以下选项中与“x+=x =x+1”功能不等价的表达式是 (13 ) 。
  A.x=x+(x=xx+1) B.x=x+(x=x(x+1)) C.x=x+(x=xx1) D.x=x(x+1), x=x+x
14.若已有声明“int a=2; ”,则执行语句“printf("%d", a, a+1 );”后的输出结果是 (14) 。
  A.语法错 B. 2,3 C. 2 D. 3
15.语句“if (!n) n++;”中的“!n”等价于如下 (15) 条件的判定。

  A.n==0   B.n!=0   C.n>0   D.n<0
16.若已有声明“int a=1; ”,则以下表达式中错误的是 (16 ) 。
  A.-a++ B.+a-- C.--a D.++-a
17.下列 (17) C语言表达式能正确表达数学计算式1÷× 2xy。
  A. 1/sqrt(2*3.14)*2*pow(x,y) B.1.0/sqrt(2)*2*x**y
  C. 1.0/sqrt(6.28)*2x^y  D.1/6.28^0.5*2*pow(x,y)
18. 已有声明“int a=3,b=3,c=2;”,以下表达式中值为0的是 (18) 。
  A. !a&&!b&&c B. !a || !b || c C. a==b &&b>=c D. a>=b &&b>c
19.
36.若有: int w=1 , x=2 , y=3 , z=4; 则表达式 w>x?x--:y<z?y--:++z 的值为 (19 ) 。

   A. 4   B. 3     C. 2   D. 1
20. 已知某程序中有以下片断:
  #define p 2.5
  main( )
  { float x=p;
  }
  则main函数中标识符p代表一个 (20)  。
  A. float型变量  B. double 型变量 C. float型常量   D. double 型常量
20.


  
填空题
1.21.设有如下程序段:
int a=2, b, c=5 ;
scanf( “%d” , &b) ;
b = c-- || scanf (“%d” , &c ) && a++;
执行该程序段时,若从键盘上输入的数据是 4ƀ3 (ƀ代表空格键) , 则变量c 的值为 (21) 。
2. signed和unsigned只能用于声明int型变量和 (22) 型变量。
3.代数式“||”的C语言表达式是 (23) 。
4.已有声明“int a=-13,n=7;”,表达式“a%=n%=4”求值后变量a的值为 (24) 。
5.已有声明“unsigned int a=30; ” ,那么 –a 的值为___(25)____。


6.
      如下程序执行后的输出是____(26)____。
  #include
  main ( )
  {
   int i=1,m=0;
   switch ( i )
{  
     case 1 :
     case 2 : m++;
     case 3 : m++;
}
     printf ( “%d” ,m);
}
7.C语言的三个逻辑运算符(!、&&、||)中,优先级高于算术运算符的是
      (27) 。
8.已知sizeof(int)的值为2,执行如下程序后输出结果为 (28) 。
main()
{ int a,b;
a=65536;
b=32767+1;
printf("%d %d
",a,b);
}
9.若有声明“int a=3,b=0,c=5;”, 则表达式 !a+b+c-1&&b+c/2 的值是 (29) 。
10.若有声明“int x=1,y=2;” ,则表达式 ++x, x+y++ 的值是 (30) 。

三、阅读程序题
1.在PC机的TC中执行以下程序后的输出是: (31) 。


main()
{
  unsigned x=0x7f39;

int y;
char c;

    c=x;
    x+=0307;
    y=x;
    printf(“%d,%x,%c”,x,y,c);
  }
2.以下程序运行后的输出结果是 (32) 。
  #include
  main ( )
  { int x=30, y=45;
   while(x!=y)
   if(x>y)x-=y;
   else y-=x;
   printf("%d", x);
  }
3.
  以下程序运行后输出结果的第一行是 (33) ,第二行是 (34) 。
  #include
  #include
  void main()
  {int a=0x65,b,c,count=0;
  b=a;
  while(b>0)
  { b=b/8;
   count++;
  }
  printf("%d
",count);
  while(count>0)
  { c=pow(8,count-1);
   printf("%d",a/c);
   a=a%c;
   count--;
  }
  }
4.以下程序运行时输出结果是 (35) 。
  #include
  main()
  {
    int i,x=3,y=5;
   for(i=0;i<3;i++)
   switch(y%x)
   {
      case 0: printf("%d",y);
   case 1: printf("%d",y--);break;
   case 2: printf("%d",--y);break;
   }
  }
  
5.以下程序执行后,输出结果的第一行是 (36) ,第二行是 _(37)______。
  #define N 100
  main()
  { int i=0,sum=0;
   do
   { if(i==(i/2)*2)
   continue;
   sum++;
   if(sum>3)
   break;
   }while(++i<N);
   printf("%d
%d", sum,i);
  }


四、完善程序题

1.下列程序的功能是按从键盘上输入的整数m,判断2m -1是否为素数,若为素数再求2m -1的反序数。例如:m为17,217 –1(131071)是素数,其反序数是170131。
  #include
   (38)     
  main()
  {
   int m,j;
   long q,k1,k2=0,k3;
   scanf("%d",&m);
   k3=k1=pow(2,m)-1;
   q=sqrt(k1);
   for(j=2;j<=q;j++)
   if( (39) ) break;     
   if(j>q)
   { while(k3>0)
   { k2=k2*10+ (40)  ;   
   k3/=10;
   }
   printf("m=%d
pow(2,m)-1=%ld is a prime.
reverse order %ld
",m,k1,k2);
   }
   else
   printf("m=%d isn't a prime.
",m);
  }
2. 以下程序找到并输出所有满足给定条件的四位十进制表示的正整数:该数是某个数的平方、该数的后二位是25、组成该整数的各位数字中有两位是2。例如:1225是满足所给条件的四位正整数(352=1225)。
  #include
  #include
  main()
  { long i,j,s,d=0;
   for(i=1000;i<10000;i++)
   { (41) ;
   j= (42) ;
   if(i==j*j && i%100==25)
   { s=i;
   while(s>0)
   { if( (43) )d++;
   s=s/10;
   }
   if(d==2) printf("
%d",i);
   }
   }
  }
3..下列程序计算下列数学函数展开式的近似值,累加运算在最后一项的绝对值小于10-6时停止。
  程序运行时从键盘上分别三个实数-1.0、0.5、1.0,作为x的值。
  #include
  #include
  #define EPS 1.0e-6
  main()
  { double x,n,tn,ft,sn,xn;
   int i;
   for(i=0;i<3;i++)
   { (44)   ;    
   ft=1.0;
   scanf("%lf",&x);
   sn=xn=x;
   do{
   xn=xn*x*x;
   ft=ft*(2*n-3)/(2*n-2);  
   tn=ft*xn/ (45)   ;   
   sn=sn+tn;
   n=n+1;
   }while( (46)   );     
   printf("f(%lf)=%0.6lf
",x,sn);
   }
  }
  
《C语言程序设计》试卷答题纸
(本试卷满分100分)

  系科_____________学号_____________姓名_____________成绩____________

单项选择题得分填空题得分阅读程序题得分完善程序题得分总分


一 、单项选择题

(1)(2)(3)(4)(5)
(6)(7)(8)(9)(10)
(11)(12)(13)(14)(15)
(16)(17)(18)(19)(20)

二、填空题

(21)(22)
(23)(24)
(25)(26)
(27)(28)
(29)(30)

三、阅读程序题

(31)(32)
(33)(34)
(35)(36)
(37

四、完善程序题

(38)(39)
(40)(41)
(42)(43)
(44) (45)
(46)
《C语言程序设计》试卷参考答案
(本试卷满分100分)

一 、单项选择题

(1)C(2)D(3)D(4)A(5) B
(6)B(7)C(8)C(9)D(10)A
(11)C(12)A(13)A(14)C(15)A
(16)D(17)A(18)A(19)B(20)D

二、填空题

(21) 4(22) char
(23) fabs(exp(sqrt(1+sin(x))))(24) -1
(25) 65506(26) 2
(27) !(28) 0 -32768
(29) 1(30) 4

三、阅读程序题

(31) -32768, 8000, 9(32) 15
(33) 3 (34) 145
(35) 4433 (36) 4
(37) 7

四、完善程序题

(38) #include (39) k1%j==0
(40) k3%10(41) d=0
(42) sqrt(i)(43) s%10==2
(44) n=2.0(45) (2*n-1)
(46) fabs(tn)>EPS

您好,很高兴能为您解决问题。
这些全是我手打的,望采纳:


1、程序每次读入一个正三位数,然后输出逆序的数字。注意,当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。


2、UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。

有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。

你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。

提醒:要小心跨日的换算。


3、你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。


4、我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。

现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。


5、每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。

现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身。


6、你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。

程序要处理的幂最大为100。


7、你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格。


希望我的解答能帮到您,望采纳!




C语言题,求各位大神给答案,把编程写出来,谢谢
#include<stdio.h> void main(){ char c1,c2,c3,c4,c5;c1='C';c2='h';c3='i';c4='n';c5='a';c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf("%c%c%c%c%c",c1,c2,c3,c4,c5);}

C语言求s=a+aa+aaa+aaaa+aa...a的值,大神给我每段解释一下吧
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。\/ public static void main(String[]args){ Scanner sca=new Scanner(System.in);System.out.println("请输入一个数");int num=sca.nextInt();int n=0,sum=0;for(int i=1;i<=5;i++){ n=n*10+num;sum=sum+...

求C语言大神,救救我这个菜鸟
写出ch是大写字符的表达式 char ch = 'ABC';写出ch是英文字符的表达式 char ch = 'AbCd';写出ch是数字字符的表达式 char ch = '123';int a大于100并且小于等于200的C语言表达式 这个要配合判断语句什么的才行不然报错 a > 100 && a<= 200 int a大于10或者小于100的C语言表达式 a >...

C语言编程题目,各位大神帮帮我吧。
例如:加密:设原文为abcdef,密钥为5,则有abcdef每个字母按字母表向后移动5们(注:z后接a)可得到密文(乱码)fghijkl;对该文件解密:文件内容为fghijk1,密钥为5,则有fghijk1每个字母向前移动5位(注a后接z),可得到原文abcdef。*\/#include <stdio.h>#include <string.h>#include <stdl...

哪位大神告诉我下答案呀,c语言
\/*本题考查了函数调用过程中,发生的数据传送是单向的。 即只能把实参的值传送给形参。如果实现实参与形参双向传递,本题使用了地址传递的方式。*\/ include <stdio.h> int fun(int a,int b, int *psub){ int sum;sum=a+b;psub=a-b;return sum;} void main(){ int x,y,s1,s2;scanf("...

大神请把你的C语言基础题完整版的答案发给我谢谢
main 2. 1,4,4,4,8 \/**\/ \/\/ l L 101 69 if((year%4) == 0)if((x%2)==0)printf("oshu");else printf("qishu");if(x>-1 && x<= 1)""(float)a\/(float)b 头文件或者是宏定义 头文件 双重循环 2 12 8 a[2][2]a[2]下班了就这些吧,感觉有些也不知道理...

c语言题,急求大神给我答案
简单写了一个输入及显示程序。默认#define DEBUG 0,定义这个是为了调试用,免得每次都要输入数据,麻烦;想要调试,设DEBUG成1就好。具体代码示例:include<stdio.h>#include<string.h>#include<malloc.h> #define LEN sizeof(struct student)#define DEBUG 0struct subject {int math;\/\/数字成绩 int...

哪位大神能用c语言写一下第一题的程序,按任意键返回菜单继续选择执行和...
include <stdio.h>int main(void){ int menuid; while(1) { printf("1.求两个数的和\\n\\ 2.求两个数的差\\n\\ 3.求两个数的商和余数\\n\\ 4.求两个数的倒数之和\\n\\ \\n\\ 输入0退出系统\\n"); scanf("%d",&menuid); rewind(stdin); switch(men...

各位大神帮帮忙,谁能给我具体讲解一下,c语言返回值,就是return,这个我...
这个原材料就是传说中函数参数,给你的门就是返回值!所以函数调用就是你将你的原始数据托付给一个现有的函数(你自己定义的希望按照你的规则处理,别人写好的,或者标准库里的)并将处理的结果给你。但是在C语言中,你必须声明你将给子函数提供的参数的类型,并声明返回值的类型。举例:int add(int...

哪位好心的大神帮忙讲下C语言的题,我是一个初学的菜鸟,拜托了_百度...
这道题的关键在switch函数这里,因为x=1,所以函数可以这样看:switch(1){case 0: b++;case 1: a++;case 2: a++,b++;}1、现在开始进入switch函数。因为函数的判断条件是1,所在选择条件中从1的项开始运行,即a++;此时a=1,b=0;2、因为函数中没有break语句,所以继续执行case 2。执行a...

江南区13874305368: 三道C语言题目,求大神. -
富叔美天: 第一题#include<stdio.h>int main() {int a[7][7];int n,i,j,sum=0;printf("Input n:");scanf("%d",&n);puts("Input array:");for(i=0;i<n;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);if(i==n-1||j==n-1||(i+j==n-1))continue;sum+=a[i][j]; }}printf...

江南区13874305368: c语言编程题求大神 -
富叔美天: #include void Strim(char *str) { int len,i,j; len=strlen(str); i=len-1; //指向尾元素下标 //先去掉结尾的空格 while(str[i] == ' ') { i--; len--; } str[len]='\0'; //再去掉开头的空格 i=0; while(str[i]!='\0'){ if(str[i] ==' '){ for(j=i+1;str[j]!='\0';j++) //将后面的字符串全部左...

江南区13874305368: C语言题目,各位大神请帮忙
富叔美天: 问题太大了,, 看正解. #include<stdio.h> #define N 6 main() { int a[N]; int i,j,k=0; int *pp; for(i=0;i<N;i++) a[i]=i+1; pp=a[0]; while(k!=N-j) { j=1; while(i!=5) { i=1; pp++; j++; if(j%3==0) { i++ ; printf("被删的数%d\n",*pp); } if(*pp==a[N-1]) pp=a[0]; }} printf("最后一个为那个没被删的数\n"); }

江南区13874305368: C语言题目 ~~~~~~~~~~~~~大神快来 题目如下 -
富叔美天: #include #define M 100#define N 100 int main(void) { int i,j,m,n; int max,jmax,flag,f = 1; int a[M][N]; while(scanf("%d",&n) != EOF){ for(i = 0; ifor(j = 0; jscanf("%d",&a[i][j]); for(i = 0; imax = a[i][0]; jmax = 0; for(j = 1; jif(maxmax = a[i][j]; jmax = j...

江南区13874305368: 求大神!!!c语言题目,要方法就可以了,谢谢! -
富叔美天: #include int main() { char str[500]; char *cp; int sum, sum2; while(scanf("%s", str)!=EOF) { cp = str; sum = sum2 = 0; if(*cp=='0' && *(cp+1)=='\0') break; while(*cp != '\0') { sum += *cp-'0'; cp++; } while(sum>9) { sum2 += sum%10; sum /= 10; if(sum { ...

江南区13874305368: 简单的C语言题目,要考试了,求大神帮助 -
富叔美天: #include int main() {char s1[200],s2[200],*p,*q; int k,m; gets(s1); scanf("%d%*c",&k); gets(s2); for(m=0;s2[m];m++); p=s1+k; for(q=p;*q;q++); for(;q>=p;q--)*(q+m)=*q; for(q=s2;*q;*p++=*q++); puts(s1); return 0; }

江南区13874305368: c语言题目,跪求大神 -
富叔美天: 显然这个功能是为了误导你 int z ; z = x ; x = y ; y = z ; 这是个交换x,y 的功能, 如果调用成功的话 就是把x=3.y=8 交换,但是如楼上2位所说,voidswap ( )局部变量,所以没有调用成功,这才是考点,所以不选B,选A

江南区13874305368: 关于c语言的题目,因为刚学 好多都不太懂 求大神 -
富叔美天: #include int fun(int n);int main(){ int n; scanf("%d",//输入 printf("%d\n",fun(n)); return 0;}int f...

江南区13874305368: c语言程序题目 在线等挺急的第一题和第三题 -
富叔美天: 1.#include void main(){ double x,y; printf("请输入x的值:"); scanf("lf",&x); while(x2.22507e-308){ if(x>=1.79769e+308&&xbreak; } printf("不正确的x输入!"); printf("\n\n"); printf("请输入x的值:"); scanf("lf",&x); } if(xy=x; ...

江南区13874305368: C语言 题目如下 大神你快来 -
富叔美天: #include int main() { int ou=0,ji=0; int x; do { scanf("%d",&x); x%2?++ji:++ou; }while(x!=-1); printf("%d %d",ji-1,ou); return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网