文档视界 最新最全的文档下载
当前位置:文档视界 › C语言程序设计大赛题目和答案

C语言程序设计大赛题目和答案

C语言程序设计大赛题目和答案在C语言程序设计领域,程序设计大赛是一种常见的形式,它旨在考察参赛者的编程能力和解决问题的能力。本文将介绍一些常见的C 语言程序设计大赛题目和对应的答案,帮助读者了解这些题目的难度和解题思路。

一、题目一:计算数列和

题目描述:给定一个正整数n,计算1到n的所有整数的和。

解答思路:可以使用循环结构来解决该问题。初始化一个累加器sum,然后通过循环依次将1到n的数累加到sum中,最终得到结果。

```c

#include

int main() {

int n;

int sum = 0;

printf("请输入一个正整数n:");

scanf("%d", &n);

for (int i = 1; i <= n; i++) {

sum += i;

}

printf("1到%d的和为:%d\n", n, sum);

return 0;

}

```

二、题目二:判断素数

题目描述:给定一个正整数n,判断其是否为素数(只能被1和自身整除的数)。

解答思路:可以使用循环结构和条件判断来解决该问题。通过循环从2到n-1依次判断n是否能被这些数整除,如果能,则n不是素数;如果循环结束后仍然没有找到能整除的数,则n是素数。

```c

#include

#include

bool isPrime(int n) {

if (n <= 1) {

return false;

}

for (int i = 2; i < n; i++) {

if (n % i == 0) {

return false;

}

}

return true;

}

int main() {

int n;

printf("请输入一个正整数n:");

scanf("%d", &n);

if (isPrime(n)) {

printf("%d是素数\n", n);

} else {

printf("%d不是素数\n", n);

}

return 0;

}

```

三、题目三:矩阵乘法

题目描述:给定两个矩阵A和B,计算它们的乘积矩阵C。

解答思路:矩阵乘法涉及到多重循环和数学计算,思路较为复杂。首先,定义三个二维数组A、B和C来表示矩阵。然后使用嵌套的循环结构计算矩阵乘积,其中外层循环控制行,内层循环控制列。

```c

#include

#define SIZE 3

int main() {

int A[SIZE][SIZE] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

int B[SIZE][SIZE] = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};

int C[SIZE][SIZE] = {0};

for (int i = 0; i < SIZE; i++) {

for (int j = 0; j < SIZE; j++) {

for (int k = 0; k < SIZE; k++) {

C[i][j] += A[i][k] * B[k][j];

}

}

}

printf("矩阵乘积C为:\n");

for (int i = 0; i < SIZE; i++) {

for (int j = 0; j < SIZE; j++) {

printf("%d ", C[i][j]);

}

printf("\n");

}

return 0;

}

```

通过以上三个例子,我们可以看到C语言程序设计大赛题目的类型多样,从简单的数列求和、判断素数,到复杂的矩阵乘法。解决这些题目不仅需要基本的语法和逻辑能力,还需要对具体问题的理解和分析能力。通过不断的练习和实践,相信读者可以在C语言程序设计大赛中取得优异的成绩。

c语言程序设计题目及答案

一、程序设计共113 题第1 题题 号:319 #include "stdio.h" void wwjt(); int fun(int m) { int i,k=1; if(m<=1) k=0; for(i=2;i #include #define M 3 #define N 4 void wwjt(); void fun(int tt[M][N],int pp[N]) { int i,j; for(j=0;jpp[j]) pp[j]=tt[i][j]; } 第3 题题号:375 功能:从键盘上输入任意实数, 求出其所对应的函数值。 z=e 的x 次幂( x>10) z=log(x+3) (x>-3) z=sin(x)/((cos(x)+4) #include #include void wwjt(); double y(float x) { double z; if(x>10) z=exp(x); else if(x>-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z); } 第4 题题号:334 功能:求给定正整数n 以内的素数之积。( n<28) #include #include"conio.h" void wwjt(); long fun(int n) { long i,k; long s=1; for(i=2;i<=n;i++) {for(k=2;k #include"conio.h" void wwjt(); long int fun(int n) { long s=1,i; for(i=2;i<=n;i++) if(n%i==0)s=s*i; return s; } 第6 题题号:50 功能:求出菲波那契数列的前一项与后一项之比的极限的 近似值例如:当误差为0.0001 时,函数值为0.618056 。 #include #include "math.h" void wwjt(); float fun() { float f1=1,f2=1,f3; float r1=2,r2; do {r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; }while(fabs(r1-r2)>1e-4); return r1; } 第7 题题号:394 功能:产生20个[30,120] 上的随机整数放入二维数组 a[5][4] 中, 求其中的最小值。 #include "stdlib.h" #include void wwjt(); int amin(int a[5][4]) { int i,j,s; s=a[0][0];

重庆理工大学《C语言程序设计》比赛预赛试题及答案-(A3版)

重庆理工大学 C语言程序设计 预赛 (考试时间90分钟,满分100分) 一、单选题(共60小题,每题1分,共60分) 1. 执行下列程序中的输出语句后,x的值是______。(知识点3.10) main() {int x ; printf(“%d\n”,(x=5*6,x*2,x+20));} A)30 B)60 C)50 D)80 2. 下列程序的输出结果是_______。(知识点 3.8) main() {int x=1,y=0,z; z=(x<=0)&&(y- ->=0); printf(“%d %d% d%\n”,z,x,y);} A)0 -1 -1 B)0 -1 0 C)0 1 0 D)0 1 -1 3. 在C语言中,下列选项属于合法的长整型常数的是_______。(知识点3.3) A)0L B)1234567 C)0.0234567 D)3.14159e3 4. 下列选项中属于不正确的赋值语句的是_____。(知识点3.6) A)t++; B)n1=(n2=(n3=0)); C)k=i= =j; D)a=b,c=1; 5. 若有定义:int a,b;char x,y;并有以下输入数据: 14 22 XxYy (回车)则能给a赋整数14,给b赋整数22,给x赋字符x,给y赋字符y的正确程序段是________。(知识点4.2) A) scanf(“%d %d”,&a,&b); x=getchar();y=getchar(); B) scanf(“%d%d %c %c”, &a, &b,&x,&x,&y,&y); C) scanf(“%d %d %c%c%c %c”, &a,&b,&x,&x,&y,&y); D) scanf(“%d%d %c %c”, &a, &b,&x,&y); 6. 下列转义字符不正确的是_______。(知识点3. 5) A)’\\’ B)’\’ C)’\053’ D)’\0’ 7. 下列选项可作为C语言赋值语句的是_______。(知识点4.2) A)x=3,y=5 B)a=b=6 C)i- -; D)y=int(x); 8. 当c的值不为0时,下列选项中能正确将c的值赋给变量a、b的是_______。(知识点5.2) A)c=b=a; B)(a=c)‖(b=c); C)(a=c)&&(b=c); D)a=c=b; 9. 有以下程序: main() { unsigned int a ; int b=-1; a=b; printf(“%u”,a);} 该程序运行后的输出结果是_______。(知识点4.5) A)-1 B)65535 C)32767 D)-32768 10. 若x、b、m、n均为int型变量,执行下面语句后b的值为_______。(知识

C语言程序设计试题及答案

C语言程序设计试题及 答案 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是(D ) A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是( B ) A、abc B、12AC C、sun D、 A 3、设有语句int a=4;则执行了语句a+=a- =a*a后,变量a的值是(A ) A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是( B ) A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是( A ) A、% B、/ C、%和/ D、 + 6、以下关于运算符的优先顺序的描述正确的是( C ) A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是( C )

sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( B ) A、 INPUT x、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、 scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456< 回车 >,下面程序的输出结果是:( C ) void main ( ) { int m,n; scanf(“%2d%3d”,&m,&n); printf(“m=%d n=%d\n”,m,n); } A、m=23 n=45 B、m=234 n=56 C、m=23 n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是( A ) main( ) { int x,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、 0 B、 22 C、 12 D、10 11、C语言中while和do-while循环的主要区别( A )

大学_C语言程序设计试题含答案

C语言程序设计试题含答案 C语言程序设计试题含答案(一) 一、填空题 1.以下程序输入3个整数值给a,b,c,变量b中的'值给a,变量c中的值给b,变量a中的值给c,交换后输出a,b,c的值。 #include stdio.h main() { int a,b,c,__①_d___; printf("enter a,b,c");scanf("%d%d%d",a,b,c); ___d=a_②____;__a=b_③_____;____b=c④_____;_c=d__⑤_____; printf("%d,%d,%d",a,b,c); } 2.求出200以内的整数中,最大的可以被17整除的数是哪个数。 #include stdio.h ___①main()____ {int i; for(_i=200___②____;___③i=0_______;i--) {if(____i%17==0____④________) break;}

printf("%d\n",__⑤_i____); } 3.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。 main() { int i,a[20],sum,count; sum=count=0; for(i=0;i20;i++) scanf("%d", __①_a[i]__ ); for(i=0;__ ②_i20_;i++) ? { if(a[i]0) ?? { count++; ?? sum+= _a[i]__③___ ; ?? } ? } printf("sum=%d,count=%d\n",__sum④___,__⑤__count___); } 4.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。请填空。 int fun( int n) { int m=0,i;

C语言程序设计试题试题及答案

C 语言程序设计试卷 ,C++语言程序设计试题及答案 一、单项选择题(每题1分,共20分) 1.C语言规定:在一个源程序中,main函数的位置( C )。 A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 2. 下面四个选项中,均是合法浮点数的选项是( B )。 A.+1e+1 5e-9.4 03e2 B.-.60 12e-4 -8e5 C.123e 1.2e-.4 +2e-1 D.-e3 .8e-4 5.e-0 3. 若a=-14,b=3,则条件表达式 a

C语言程序设计考试试题(附答案)

C语言程序设计考试试题(附答案) C语言程序设计考试试题(附答案) 一、选择题(共30题,每题2分,共60分) 1. 下列哪个是C语言关键字? A. print B. variable C. while D. calculate 答案:C 2. 在C语言中,下列哪个是合法的变量名? A. 1_hello B. _world C. v-ariable D. continue 答案:B 3. 下列哪个是正确的C语言注释方式? A. // This is a comment B. # This is a comment

C. /* This is a comment */ D. 答案:C 4. 下列哪个是正确的C语言函数定义格式? A. void addNumbers() B. addNumbers() C. function addNumbers() D. int addNumbers() 答案:D 5. 执行下面的C语言代码,输出的结果是什么?```c #include int main() { int x = 5; int y = 2; float result = x / y; printf("%f", result); return 0;

} ``` A. 2.5 B. 2 C. 2.000000 D. 5 答案:B 6. 在C语言中,下列哪个是正确的if语句格式? A. if (x > 4) then B. if (x > 4) { } C. if x > 4 D. if (x > 4) 答案:D 7. 下列哪个是C语言中的逻辑运算符? A. ++ B. && C. % D. = 答案:B

《C语言程序设计》题库及答案

《C语言程序设计》题库及答案C语言程序设计题库及答案 C语言是一门广泛应用于计算机科学领域的编程语言,掌握其基本 知识和技能对于计算机专业的学生来说至关重要。为了帮助学生更好 地掌握C语言程序设计,以下是一份题库及答案,供大家学习和参考。 一、基础知识 1. C语言中,如何表示注释? 答案:使用“//”表示单行注释,使用“/*...*/”表示多行注释。 2. 声明一个整型变量x,并将其初始化为10。 答案:int x = 10; 3. 下列哪种数据类型不能存储整数? A. int B. float C. char D. double 答案:B. float 4. 以下哪个关键字用于声明常量? A. const

B. static C. volatile D. extern 答案:A. const 5. 请写出C语言中的三种基本数据类型。答案:整型、浮点型、字符型。 二、控制语句 1. 请写出一个简单的if语句的语法格式。答案:if (条件表达式) { // 执行代码 } 2. 以下哪个关键字用于跳出当前循环? A. continue B. break C. return D. goto 答案:B. break 3. 请写出一个for循环的语法格式。

答案:for (初始化表达式; 条件表达式; 更新表达式) { // 循环体代码 } 4. 请写出一个while循环的语法格式。 答案:while (条件表达式) { // 循环体代码 } 5. 请写出一个switch语句的语法格式。 答案:switch (表达式) { case 值1: // 代码 break; case 值2: // 代码 break; default: // 默认代码 }

C语言程序设计试卷含答案

C语言程序设计试卷含答案 一、选择题(共20题,每题2分,共40分。下面每题后面用小括号内标注了正确答案) 1. 下列关键字中,用于定义变量的是(A) A. int B. if C. while D. for 2. 变量的作用域是指变量的(C) A. 大小 B. 类型 C. 可访问范围 D. 值 3. 下列语句中,用于输出字符的是(B) A. scanf B. printf C. input D. output 4. 已知整型变量a和b,那么a += b; 等价于(D) A. a = a + b; B. a -= b; C. a = a - b; D. a = a + b; 5. 在C语言中,用于表示“不等于”的运算符是(C) A. = B. == C. != D. >= 6. 下面哪个for循环语句是正确的(A) A. for(int i=0; i<10; i++) B. for(int i<10; i++) C. for(int i=0; i<10) D. for(i=0; i<10; i++) 7. 下列选项中,表示“或”运算符的是(D) A. & B. && C. | D. ||

8. 在C语言中,用于声明宏定义的关键字是(B) A. define B. #define C. const D. int 9. 如果要判断一个整数是否为负数,正确的if条件语句是(C) A. if(n > 0) B. if(n => 0) C. if(n < 0) D. if(n <= 0) 10. 下列哪个不是C语言的基本数据类型(D) A. int B. float C. char D. string 11. 下列关键字中,用于定义函数的是(C) A. main B. include C. void D. for 12. 在C语言中,表示“或者”的条件语句是(B) A. if B. else if C. switch D. while 13. C语言中的“++”运算符表示(A) A. 自增 B. 自减 C. 相加 D. 相减 14. 下列哪个语句用于在C语言中声明字符类型的变量(C) A. String name; B. var name; C. char name; D. character name; 15. 下列哪个不是C语言的关键字(D) A. enum B. long C. double D. true 16. 在C语言中,用于跳出当前循环并继续执行下一次循环的关键字是(D)

C语言程序设计竞赛试题参考答案

C语言程序设计竞赛试题参考答案 第七届“蓝桥杯”全国软件与信息技术专业人才大赛清远职业技术学院选拔赛《C语言程序设计》参考答案1.标题:年龄巧合(填空题,20分) 答案: 1988 2.标题:海盗分金币(填空题,20分) 答案: 3129 3.标题:啤酒和饮料(填空题,20分) 答案: 11 4.标题:兔子繁殖(程序填空,20分) (1) i=1;i<=38;i++ (2) f3=f1+f2 (3) f1=f2 (1) f2=f3 5.题目:杨辉三角(编程题 20分) 代码如下: #include #include int main() { int i,j,k,n; static int a[50][50]; printf("Input lines\",&n); scanf("%d",&n); a[1][1]=a[2][1]=a[2][2]=1; for(i=3;i<=n;i++) for(j=1;j<=i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=1;i<=n;i++) { for (k=1;k<=n-i;k++) printf(" "); for(j=1;j<=i;j++) printf("%2d ",a[i][j]); printf("\"); } getch(); return 1; } 1-3题参考代码 1、代码如下: #include int main(void) { int a, b, c, d; int age; int year; for(a=0; a<=2; a++) { for(b=0; b<=9; b++) { for(c=0; c<=9; c++) { for(d=0; d<=9; d++) { age = a+b+c+d; year = 2014-(a*1000+b*100+c*10+d);

C语言程序设计大赛题目和答案

C语言程序设计大赛题目和答案在这篇文章中,我们将介绍一些C语言程序设计大赛的题目和对应的答案。希望通过这些题目和答案的展示,能够对大家在C语言程序设计方面的知识有所帮助。 题目一:计算圆的周长和面积 编写一个C程序,计算给定半径的圆的周长和面积,并输出结果。 ```c #include int main() { double radius, perimeter, area; printf("请输入圆的半径:"); scanf("%lf", &radius); perimeter = 2 * 3.14159 * radius; area = 3.14159 * radius * radius; printf("圆的周长为:%.2lf\n", perimeter); printf("圆的面积为:%.2lf\n", area); return 0; } ```

题目二:查找数组中的最大值 编写一个C程序,从给定的整型数组中查找并输出最大的元素。```c #include #define MAX_SIZE 100 int main() { int array[MAX_SIZE], size, i; int max; printf("请输入数组的大小:"); scanf("%d", &size); printf("请输入数组的元素:"); for(i = 0; i < size; i++) { scanf("%d", &array[i]); } max = array[0]; for(i = 1; i < size; i++) { if(array[i] > max) { max = array[i]; }

C语言程序设计习题集及参考答案

C语言程序设计习题集及参考答案 C语言程序设计习题集及参考答案 一、简介 C语言是一种广泛使用的程序设计语言,它具有高效、灵活和易于维护的特点。在学习C语言的过程中,通过练习题的方式可以帮助我们加深对语言的理解和应用。本文将提供一些C语言的练习题,并给出参考答案,以帮助读者巩固所学知识。 二、习题集 1、选择题 (1) C语言中的基本数据类型包括哪些? A. int, float, char B. int, float, double C. char, float, double D. int, float, boolean (2) 下列哪个标识符是合法的C语言变量名? A. 123 B. _abc C. ab-c D. a bc (3) 下面哪个运算符的优先级最高? A. + B. && C. ++ D. ! 2、填空题 (1) 在C语言中,整数的默认存储类型是____________。 (2) 写出 计算a和b的最大值的表达式:max = a ______ b; (3) 写出判断一

个数是否为偶数的表达式:num % ______ == 0。 3、编程题 (1) 编写一个程序,输出1到10之间的所有奇数和偶数。 (2) 编写一个程序,判断一个整数是否为素数。如果是素数,输出"Yes",否则输出"No"。 (3) 编写一个程序,输入一个字符串,然后将字符串中的所有字母转换为大写。 三、参考答案 1、选择题 (1) C语言中的基本数据类型包括int、float和char,因此答案为A。 (2) 在C语言中,合法的标识符不能以数字开头,不能包含特殊字符和空格,因此选项A和C是错误的。选项B中使用下划线作为变量名的一部分是合法的,因此是正确的选项。选项D中的a和bc之间没有分隔符,不符合标识符的命名规则,因此也是错误的。因此,答案为B。 (3) 在C语言中,运算符的优先级从高到低依次为:()、[]、.&、!、++、--、~、* &、+ -、% 、/ %、<< >>、< > <= >= 、== !=、& ^ |、&& ||以及所有的逻辑运算符。因此,选项C的++运算符优先级最高,答案为C。

c程序设计考试题目及答案

c程序设计考试题目及答案 一、选择题(共10题,每题2分,共20分) 1. C语言中,以下关键字不属于标准C语言关键字的是: A. for B. if C. switch D. class 答案:D 2. 定义一个数组 int arr[5]={1,2,3,4,5},则 arr[2] 的值是: A. 2 B. 3 C. 4 D. 5 答案:C 3. 在C语言中,以下哪个运算符用于求两个整数相除后的余数: A. % B. / C. ^

答案:A 4. 下列选项中,不属于C语言中的控制流语句的是: A. while B. continue C. goto D. delete 答案:D 5. 下列哪个函数用于输出到标准输出设备(默认为显示器): A. getchar() B. scanf() C. puts() D. fopen() 答案:C 6. 在C语言中,以下哪个运算符优先级最高: A. + B. = C. <<

答案:C 7. 在C语言中,以下哪个关键字用于定义新的结构体类型: A. typedef B. struct C. void D. extern 答案:A 8. 下列选项中,属于C语言中的数据类型的是: A. integer B. character C. float D. boolean 答案:C 9. C语言中,以下哪种循环结构可以确保至少执行一次循环体: A. for循环 B. while循环 C. do...while循环

D. if...else语句 答案:C 10. 函数原型声明的作用是: A. 定义函数的实现 B. 声明函数的返回值类型 C. 声明函数的参数类型和个数 D. 控制函数的调用顺序 答案:C 二、编程题(共2题,每题40分,共80分) 题目1: 请编写一个C程序,实现以下功能: 1. 定义一个结构体类型Student,包含以下成员: - char name[20]:表示学生姓名 - int age:表示学生年龄 2. 定义一个函数inputStudent,用于输入学生信息,函数原型如下: - void inputStudent(Student *student) 3. 定义一个函数outputStudent,用于输出学生信息,函数原型如下: - void outputStudent(Student student)

C语言程序设计竞赛题及其答案

C语言程序设计竞赛题及其答案 数学与统计学院 第三届计算机程序设计竞赛题 竞赛需知: 1、答案必须写在答题纸上。 2、程序采用C/JAVA/VB/VFP语言实现均可。 3、考虑到各种因素,程序的键盘输入和结果输出可以用伪代码或者自然语言表示。但是必 须说明输入变量和输出变量。 4、题目最好能用完整、正确的语言程序来解决问题,如确实无法编写完整语言程序的,可 以写出程序主要框架和流程,必要时可以用伪代码或者自然语言描述算法(程序)。 一、玫瑰花数(20分) 如果一个四位数等于它的每一位数的4次方之和,则称为玫瑰花数。例如: + + 1634+ =, 4^4 4^3 4^6 4^1 编程输出所有的玫瑰花数。 #include void main() { int i,j,k,l,m;

for(i=999;i<=9999;i++) { j=i/1000; k=i%10; l=i/100-10*j; m=i/10-100*j-10*l; if(i==j*j*j*j+k*k*k*k+l*l*l*l+m*m*m*m) printf("%d\n",i); } } 二、菱形图案(20分) 对给定的奇数n,编程打印菱形图案。 输入样例: 7 输出样例: * *** ***** ******* ***** *** * #include #include void main() { int i,j,k; int n; scanf("%d",&n); for(i=0;i

{for(j=0;j<="" p=""> printf(""); for(k=0;k printf("*"); printf("\n"); } } 三、钻石奖励(20分) 海盗们决定用“投环套物”的方式来奖励最近一次行动中贡献最大的人。他们将1克拉钻石排列成矩阵,通过投掷圆环决定奖励的钻石的数量。假设每个钻石的x和y坐标都是1到99的整数,输入矩阵及圆形,请你帮他们判断一下这个人能获得多少克拉的钻石。 **** **** **** **** 输入格式 输入数据包含两行,第一行为矩阵的行数及列数,第二行为圆心的坐标点及半径。 输出格式 输出数据为圆形内的钻石的克拉数(包括圆形边上的钻石)。 输入样例 44 211 输出样例 5 #include #include void main() {

C语言程序设计大赛题目和答案

C语言程序设计大赛题目和答案 /*------------------- 第一题 某人到商店购物,身上有钱m元,商店里有商品n件,如果只能买1件或2件商品,且想一次性把钱花完,编程求是否可行? 输入数据:第一行输入两个整数n和m (1≤n≤30000,1≤m≤10000),下面n行中每一行都是一个整数a,表示商店中商品的价格,1≤a≤10000。 输出数据:如果可以恰好用m元钱买到1件或者是2件东西,则第一行输出YES,随后的一行或两行输出所买商品的价格;否则输出NO。 输入样例: 5 20 1 3 7 13 18 输出样例: YES 7 13 -----------------------*/ #include #include void main(){ int m, n; int *a; int i,j; scanf("%d%d",&n,&m); //输入商品数及钱的多少 a=(int*)malloc(n*sizeof(int)); for(i=0;i

for(i=0;i

C语言程序设计题目及解答-12

一、判断题<20分> 1. 语句char *p = "Turbo C"的含义是将字符串赋给字符型指针变量p.2分 2. 若指针变量指向一维数组的第一个元素,将指针变量加整数3,即指针后移3个元素. 3. b是一维数组名,数组元素b[1]还可写成*.2分 4. 对二维数组a来说,由于a+1与*的值相等,因此二者的含义是一样的.2分 5. 在二维数组中,行指针是指向一维数组的指针变量.2分 6. 取地址运算符&与指针运算符*的优先级相同,结合方向为自右向左.2分 7. 两个字符串中的字符个数相同时才能进行字符串大小的比较2分 8. 字符串不能用指针进行引用2分 9. char c[]="Very Good"; 是一个合法的为字符串数组赋值的语句.2分 10. char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl".2分 二、选择题<24分> 1.下面程序段的运行结果是< >. [B] 2分 char str[]="ABC",*p=str; printf<"%d\n",*>; A. 67 B. 0 C. 字符′C′的地址 D. 字符′C′ 2.阅读下列程序,则执行后的结果为< >. [B] 2分 #include "stdio.h" int main<> { int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56}; printf<"%x,%x",c[2][2],*<*+1>>; } A. 62,5 B. 3e,6 C. 56,5 D. 3E,6 3.下面程序段的运行结果是< >. [C] 2分 char *s="abcde"; s+=2; printf<"%d",s>; A. cde B. 字符′c′ C. 字符′c′的地址 D. 无确定的输出结果 4.若有变量定义 int x=3,*p;,则下面语句不正确的是< >. [A] 2分 A. p=&; B. p=&x; C. p=&x+1; D. p=&x, p++; 5.指针变量p1、p2类型相同,要使p2、p1指向同一变量,哪一个语句是正确的〔〕.A] 2分 A. p2=*&p1; B. p2=**p1; C. p2=&p1; D. p2=*p1 6.若有语句:char *line[5];,以下叙述中正确的是< >. [A] 2分 A. 定义line是一个数组,每个数组元素是一个基类型为char为指针变量. B. 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组. C. 定义line是一个指针数组,语句中的*号称为间址运算符. D. 定义line是一个指向字符型函数的指针. 7.若有数组定义为int a[10],i; 与a[i]=100 等价的赋值表达式是[B] 2分 A. a+i=100 B. *=100 C. =100 D. &a[i]=100

C语言程序设计题目及解答-07

C语言程序设计题目及解答-07 一、判断题 (24分) 1. 函数的递归调用不过是一个函数直接地调用它自身。2分 2. 在c语言中,在main函数中定义的变量称为全局变量。2分 3. 静态变量和外部变量都是全局变量,它们的存储是静态的。2分 4. 静态局部变量只在本函数内可用。2分 5. 静态外部变量只在本文件内可用。2分 6. 变量根据其作用域的范围可以分作局部变量和全局变量.2分 7. 任何数组在使用时必须先定义。2分 8. 如果想使一个数组中全部元素的值为1,可以写成int a[10]={1*10};2分 9. 如果定义数组int b[6]={1,2,3,4};则b[6]为0。2分 10. int n=10; int a[n];则数组a有10个元素。2分 11. int b[][3] = {1,2,3,4,5,6,7} ,表示数组b是3行3列的数组。2分 二、选择题 (36分) 1.根据下面函数print的定义,选出调用函数print(5378)的值是()。 [A] 2分 void print(long n) { if (n==0) return ; else{ print(n/10); printf("% d", n%10); return ; } } A. 5 3 7 8 B. 8 7 3 5

C. 3 5 7 8 D. 8 7 5 3 2.根据下面函数f,选出f(f(3))的值是()。 [C] 2分 int f(int x) { static int k=0; x=x+k; k--; return x; } A. 5 B. 3 C. 2 D. 4 3.如果在函数中定义一个变量,有关该变量作用域正确的是()。 [A] 2分 A. 只在该函数中有效 B. 在该文件中有效 C. 在本程序中有效 D. 为非法变量 4.下列叙述中,正确的叙述项是()。 [B] 2分 A. 定义函数时,必须要有形参 B. 函数中可以没有return语句,也可以有多条return语句 C. 函数f可以用f(f(x))形式调用,这种调用形式是递归调用 D. 函数必须有返回值 5.下列说法正确的是( ) [D] 2分 A. 在C语言中,可以使用动态内存分配技术定义元素个数可变的数组 B. 在C语言中,数组元素的个数可以不确定,允许随机变动 C. 在C语言中,数组元素的数据类型可以不一致

C语言程序设计历年统考试题集10套含答案

C语言程序设计试题集(第1套) 请将第一、二、三、四题的答案写在答题页的相应题目的后面(写在别处不得分)。 一、单项选择题(每题2分,共20分) 1、以下叙述不正确的是 A)C程序由函数构成 B) 一个C程序至少包含一个main函数 C) main函数可以调用main函数 D) main函数是每个程序执行的起始点 2、C程序中能直接让机器执行的文件是 A)编辑后的.c源文件 B)通过编译的.obj文件 C)通过连接的.exe文件 D)编辑后的.bak文件 3、假设定义变量如下: int x; float y; 以下输入语句中哪个是正确的? A)scanf(“%f%d”,&y,&x); B)scanf(“%f%d”, y, x); C)scanf(“%f%f”,&y,&x); D)scanf(“%d%d”,&y,&x); 4、已知:int a[][3]={1,2,3,4,5,6};则数组a的第一维的大小是 A)2 B)3 C)4 D)无确定值

5、.如果switch表达式是char 变量code,下面哪一个case子句是合法的。 A)case “3”:B) case ‘3’: C)case 3 : D)case =3: 6、能正确表示”x的值在[1,10]和[200,210]范围内”的表达式是 A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B) (x>=1) || (x<=10) || (x>=200) || (x<=210) C) (x>=1)&&(x<=10) || (x>=200)&&(x<=210) D) (x>=1) || (x<=10)&&(x>=200) || (x<=210) 7、C语言中while和do-while 循环的主要区别是 A)do-while循环至少无条件执行一次,而while循环可能一次也不执行 B)while循环控制条件比do-while循环控制条件严格 C)do-while循环允许从外部转到循环体内,而while循环不允许 D)do-while的循环体可以是复合语句,而while循环不可以是复合语句 8、下面哪一项函数的头部是有效的? A)one(int a int b) B)int thisone(char x) C)char another(int a,b) D)double yetanother

100道C语言编程题参考答案

101道C语言编程题参考答案1000. 计算A+B 的问题49%(655/1347) 53% 01C语言基础 1.#include int main() { int a,b; scanf("%d%d",&a,&b); printf("%d",a+b); return 0; } 1001. Hello World! 82%(693/848) 18% 01C语言基础 2.#include int main() { printf("hello world!"); return 0; } 1004 两个整数的值互换43%(530/1235) 58% 01C语言基础 3.#include int main() { int a,b,t; scanf("%d%d",&a,&b); t=a; a=b; b=t; printf("%d %d",a,b); } 1068 计算三门课程总分和平均分41%(482/1190) 60% 01C 语言基础 4.#include int main() { float a,b,c,zf,pj; scanf("%f%f%f",&a,&b,&c); zf=a+b+c; pj=zf/3; printf("%.2f %.2f",zf,pj); } 1002 鸡兔同笼问题51%(443/872) 50% 02顺序结构 5.#include "stdio.h" int main() { int a,b,x,y; scanf("%d%d",&a,&b); x=2*a-b/2; y=b/2-a; printf("%d %d",x,y); } 1005 输出一个自然数的百位十位和个位上的各个数字

C语言竞赛练习题40题(答案)

C语言竞赛练习题1 1.求最大数 问555555的约数中最大的三位数是多少? *问题分析与算法设计 根据约数的定义,对于一个整数N,除去1和它自身外,凡能整除N的数即为N的约数。因此,最简单的方法是用2到N-1之间的所有数去除N,即可求出N的全部约数。本题只要求取约数中最大的三位数,则其取值范围可限制在100到999之间。 *程序说明与注释 #include void main() { long i; int j; printf("Please input number:"); scanf("%ld",&i); for(j=999;j>=100;j--) if(i%j==0) { printf("The max factor with 3 digits in %ld is:%d,\\n",i,j); break; } } *运行结果 输入:555555 输出:The max factor with 3 digits in 555555 is:777 2.高次方数的尾数 求13的13次方的最后三位数 *问题分析与算法设计 解本题最直接的方法是:将13累乘13次方截取最后三位即可。 但是由于计算机所能表示的整数范围有限,用这种“正确”的算法不可能得到正确的结果。事实上,题目仅要求最后三位的值,完全没有必要求13的13次方的完整结果。 研究乘法的规律发现:乘积的最后三位的值只与乘数和被乘数的后三位有关,与乘数和被乘数的高位无关。利用这一规律,可以大大简化程序。 *程序说明与注释 #include void main() { int i,x,y,last=1; /*变量last保存求X的Y次方过程中的部分乘积的后三位*/ printf("Input X and Y(X**Y):"); scanf("%d**%d",&x,&y); for(i=1;i<=y;i++) /*X自乘Y次*/ last=last*x%1000; /*将last乘X后对1000取模,即求积的后三位*/ printf("The last 3 digits of %d**%d is:%d\\n",x,y,last%1000); /*打印结果*/

相关文档
相关文档 最新文档