C语言练习题编程4
- 格式:doc
- 大小:48.50 KB
- 文档页数:5
一、单选题1、以下数组定义中,错误的是()。
A.inta[3]={‰2,3,4};B.inta[]={l,2,3};C.inta[5]={l z2,3};D.inta[5],b;正确答案:A解析:A、数组长度为3,但赋了4个初值2、设有定义inta[10]={0};则说法正确的是()。
A.数组初始化错误,初值个数少于数组元素个数B.数组a有10个元素,各元素的值为0C.数组a有1个元素,其值为0D.数组a有10个元素,其中a[0]的值为0,其他元素的值不确定正确答案:B解析:B、当定义的同时,给数组赋了初值,但初值个数小于数组长度时,剩余的数组元素全赋为03、执行下面的初始化语句,()保存的不是字符串。
A.charstr[6]={,S, ,r,,,i√n,,,g,};B.charstr[]={'S';t','r,,,i,z,n∖,g,,0};C.charstr[10]={'S',,t',,r',,i√n∖,g,,,∖0,};D.charstr[10]="String";正确答案:A解析:A、Str数组长度为6,6个元素值都不是'0)没有成为字符串B›,∖0,的ASClI码是0,初始化为。
或'∖0'是一样的。
4、设有以下定义,则数组Sl和s2()ocharsl[]={'S'z,t','r'∕i√n','g');chars2[]="String";A.长度不同,但内容相同B.长度相同,内容也相同C.长度相同,但内容不同D.长度不同,内容也不同正确答案:D解析:D、s2比Sl多一个∖0T长度多15、设已定义charstr[6]={,a√b√∖O√c√d√∖O,};执行语句printf(("%s",str)后,输出结果为()。
《C语言程序设计》练习四(参考答案)1. 输入一个学生的成绩(在o〜100分之间,超出此范围显示错),进行五级评分并显示。
答案:第一空:score>=0 && score<=100第二空:score/10第三空:break2. 使用二维数组形成并按下列形式输出数据0 12 3 412 3 4 52 3 4 5 63 4 5 6 74 5 6 7 8答案:第一空:a[5][5]第二空:i+j第三空:printf(n\n n)3. 对含有10个元素的数组“先按元素的存储次序倒序输入,再按其正序输出。
答案:第一空:N 10第二空:i>=0第三空:&a[i]4.学生成绩的字母等级和分数范围如下:字母等级分数范围9()〜100B 80-89C 70〜7960 〜690〜59输入错误输入字母等级之后,输出相应的分数范围。
答案:第一空:char score 第二空:break 第三空:default5.从键盘输入x 的值,根据以下公式计算并输岀x 和 J = <y 的值。
X 0<x<2 x 2 +l 2<x<6 Jx + l 6SxvlOY、in答案: 第一空:&X 第二空:break 第三空:sqrt(x-i-l)A 二IVU 2 +i6. 分别统计并输出17、18、19和20岁各年龄的学生人数。
答案:第一空:prim 廿(”输入年龄有\n”) 第二空:age 第三空:a[i]7. 将从键盘输入的字符串逆序显示。
答案: 第一空:str 第二空:n 第三空:p-E其它字母8. 输入100名学生的出生月份,统计并输出每个月份过生FI的学生人数。
答案:第一空:&month第二空:iv=12第三空:%d9. ........................................................................... 输入n(ndl),计算1+ (1+2) + (1+2+3) + ...................................................................... +(1+2+……+n)的值。
青少年软件编程(C语言)等级考试试卷(四级)分数:100 题数:4一、编程题(共4题,每题25分,共100分)1.数字三角形问题数字三角形问题73 88 1 02 7 4 44 5 2 6 5(图1)图1给出了一个数字三角形。
从三角形的顶部到底部有很多条不同的路径。
对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。
注意:路径上的每一步只能从一个数走到下一层上和它最近的左边的那个数或者右边的那个数。
时间限制:1000内存限制:65536输入输入的是一行是一个整数N (1 < N <= 100),给出三角形的行数。
下面的N行给出数字三角形。
数字三角形上的数的范围都在0和100之间。
输出输出最大的和。
样例输入样例输出试题编号:试题类型:编程题标准答案:试题难度:一般试题解析:展示地址:点击浏览考生答案:#include <bits/stdc++.h>using namespace std;int n;int a[110][110];int main(){cin >> n;for(int i = 1;i <= n;i++)for(int j = 1;j <= i;j++)cin >> a[i][j];for(int i = n - 1;i >= 1;i--)for(int j = 1;j <= i;j++)a[i][j] = max(a[i + 1][j], a[i + 1][j + 1]) + a[i][j];cout << a[1][1] <<endl;return 0;}考生得分:25是否评分:已评分评价描述:2.大盗大盗阿福是一名经验丰富的大盗。
趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。
这条街上一共有N 家店铺,每家店中都有一些现金。
阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至。
第四部分数组4.1 选择题1. 以下关于数组的描述正确的是( )。
A. 数组的大小是固定的,但可以有不同的类型的数组元素B. 数组的大小是可变的,但所有数组元素的类型必须相同C. 数组的大小是固定的,所有数组元素的类型必须相同D. 数组的大小是可变的,可以有不同的类型的数组元素2. 以下对一维整型数组a的正确说明是( )。
A.int a(10);B. int n=10,a[n];C.int n;D. #define SIZE 10scanf("%d",&n); int a[SIZE];int a[n];3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。
A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式4. 以下对一维数组m进行正确初始化的是( )。
A. int m[10]=(0,0,0,0) ;B. int m[10]={ };C. int m[ ]={0};D. int m[10]={10*2};5. 若有定义:int bb[ 8];。
则以下表达式中不能代表数组元bb[1]的地址的是( )。
A. &bb[0]+1B. &bb[1]C. &bb[0]++D. bb+16. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。
A. 3B. 6C. 10D. 207. 若有以下说明:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;则数值为4的表达式是( )A. a[g-c]B. a[4]C. a['d'-'c']D. a['d'-c]8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。
#include<stdio.h>main(){int a[10],i=0;while(i<10) scanf("%d",________ );┇}A. a+(i++)B. &a[i+1]C. a+iD. &a[++i]9. 执行下面的程序段后,变量k中的值为( )。
c编程练习题(打印版)C语言编程练习题一、基础练习1. 编写一个程序,计算并输出两个整数的和、差、乘积和商。
提示:使用scanf函数输入两个整数,使用算术运算符进行计算。
2. 编写一个程序,计算并输出一个圆的面积。
提示:圆的面积公式为A = π * r * r,其中 r 是圆的半径。
3. 编写一个程序,计算并输出一个矩形的周长和面积。
提示:矩形的周长公式为 P = 2 * (l + w),面积公式为 A = l * w,其中 l 是长度,w 是宽度。
4. 编写一个程序,判断一个整数是奇数还是偶数。
提示:使用模运算符 % 来判断。
二、控制结构练习1. 编写一个程序,根据用户输入的分数,输出对应的等级。
提示:90分以上为 A,80-89分为 B,70-79分为 C,60-69分为D,60分以下为 F。
2. 编写一个程序,实现简单的猜数字游戏。
提示:程序随机生成一个1到100之间的整数,用户输入猜测的数字,程序根据用户输入给出提示(太高、太低或正确)。
3. 编写一个程序,实现一个简单的计算器。
提示:程序提示用户输入运算符(+、-、*、/)和两个操作数,然后输出计算结果。
三、数组练习1. 编写一个程序,实现对一个整数数组的排序。
提示:可以使用冒泡排序、选择排序或插入排序算法。
2. 编写一个程序,找出一个字符串数组中最长的字符串。
提示:遍历字符串数组,比较每个字符串的长度。
3. 编写一个程序,实现字符串的反转。
提示:可以使用数组的索引特性来实现。
四、函数练习1. 编写一个函数,计算一个数的阶乘。
提示:使用递归或循环来实现。
2. 编写一个函数,实现字符串的复制。
提示:不使用库函数,手动复制字符串。
3. 编写一个函数,判断一个字符串是否为回文字符串。
提示:回文字符串是指正读和反读都一样的字符串。
五、指针练习1. 编写一个程序,使用指针交换两个整数的值。
提示:注意指针变量的赋值和解引用。
2. 编写一个程序,实现字符串的连接。
第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是(A)A)无限次B)有语法错,不能执行C) 一次也不执行D)执行1次2、t为int类型,进入下面的循环之前,t的值为0while(t=1){ …… }则以下叙述中正确的是(B)A) 循环控制表达式的值为0B)循环控制表达式的值为1C) 循环控制表达式不合法D)以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D)m!=14、有以下程序,程序运行后的输出结果是(C).main(){int i=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D ).main(){int i=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环6、有如下程序main(){int n=9;while(n>6){n-—;printf(“%d",n);}}该程序段的输出结果是(B)A)987 B) 876 C) 8765 D) 98767、以下程序的输出结果是(B)main(){int num= 0;while(num<=2){num++;printf(“%d\n”,num);}}A) 1 B) 1 C)1 D)l2 2 23 348、有以下程序,若运行时输入3.6 2.4<回车〉,则输出的结果是( B)。
main(){float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1。
0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2。
单选题1、关于C语言中的函数,下列描述正确的是()A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的嵌套均不可以嵌套D.函数的定义和函数的调用均不可以嵌套答案:B解析:函数的定义不可以嵌套,但函数的调用可以嵌套2?、定义一个函数:exce((v1, v2), (v3,v4,v5),v6); 在该函数调用时,实参的个数为()个A.3B.4C.5D.6答案:A解析:(v1, v2),(v3,v4,v5)和v6一共三个实参3、关于C语言中print()函数与scanf()函数,下列描述中正确的是()A.printf()函数可以向任何地方输出数据B.printf()只向控制台输出数据C.scanf()只能输入英文字母和数字D.scanf()函数可以识别输入的空格答案:B解析:printf()是向控制台输出的函数4、在C语言中,内部函数需要添加的关键字是()A.externB.staticC.thisD.auto答案:B解析:在定义内部函数时,需要在函数的返回值类型前面添加static关键字(又称为静态函数)。
5、当调用时,会调用内部函数A.当调用时,会调用内部函数B.当调用时,会调用外部函数C.当调用时,会调用两次,先调用内部函数再调用外部函数D.都不调用,会报错答案:A解析:当内部函数与外部函数重名时,会优先调用内部函数6、在C语言中,声明外部函数需要添加的关键字是()A.externB.staticC.thisD.auto答案:A解析:声明外部函数的方式是在函数的返回值类型前面添加extern关键字7、关于C语言中的局部变量,下列描述中错误的是()A.局部变量就是在函数内部声明的变量B.局部变量只在函数内部有效C.局部变量只有当它所在的函数被调用时才会被使用D.局部变量一旦被调用,其生存周期持续到程序结束答案:D解析:当函数调用结束时局部变量就会失去作用8、关于C语言中的全局变量,下列描述中正确的是()A.全局变量的作用域一定比局部变量的作用域范围大B.静态类别变量的生存周期贯穿于整个程序的运行期间C.函数的形参都属于全局变量D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值答案:B解析:?选项1不对:如果程序中只有一个主函数,则在整个程序运行中,局部变量都在起作用;选项3不对:除了C++的引用类型参数,所有函数的形参都是局部变量;选项4不对:static变量定义时就存储地全局区,初始化为0;9、当全局变量与局部变量重名时,那么在调用时()A.局部变量会被屏蔽B.全局变量会被屏蔽C.都不会调用,系统会报错D.会调用两次,先调用局部变量,再调用全局变量答案:B解析:当局部变量与全局变量重名时,全局变量会被屏蔽。
c语言练习题
在学习C语言编程过程中,适当的练习题目可以巩固所学的知识,
并提升对C语言的理解和应用能力。
以下是一些适用于初学者的C语
言练习题目,可以帮助您检验自己的编程水平和解决问题的能力。
练习一:输出姓名和年龄
要求:编写一个C程序,在控制台输出自己的姓名和年龄。
练习二:计算圆的面积
要求:编写一个C程序,根据用户输入的半径,计算并输出圆的面积。
练习三:计算矩形的面积和周长
要求:编写一个C程序,根据用户输入的长和宽,计算并输出矩形
的面积和周长。
练习四:判断奇偶数
要求:编写一个C程序,判断用户输入的数是奇数还是偶数,并在
控制台输出相应的结果。
练习五:计算两数之和
要求:编写一个C程序,要求用户输入两个整数,并计算它们的和,然后在控制台输出结果。
练习六:找出最大数
要求:编写一个C程序,要求用户输入三个数,然后找出其中的最大数,并在控制台输出结果。
练习七:判断闰年
要求:编写一个C程序,判断用户输入的年份是否为闰年,并在控制台显示结果。
练习八:计算阶乘
要求:编写一个C程序,要求用户输入一个正整数,然后计算并输出它的阶乘。
练习九:逆序输出字符串
要求:编写一个C程序,要求用户输入一个字符串,然后按逆序输出该字符串。
练习十:生成九九乘法表
要求:编写一个C程序,生成九九乘法表,并在控制台输出结果。
通过完成以上的C语言练习题,您可以巩固对C语言的理解,并提高编程能力。
希望这些练习题对您有所帮助,让您更好地掌握C语言编程。
继续努力学习,不断提升自己的技能!。
一、单项选择题(共20小题;每小题1分,共20分)
1、一个C语言程序由()组成。
A.子程序B.过程C.函数D.主程序
2、若以下选项中的变量已正确定义,则正确的赋值语句是()。
A.x1=26.8%3 B.1+2=x2 C.x3=0x12 D.x4=1+2=3;
3、以下符合C语言语法的实型常量是()。
A.1.2E0.5 B.3.14159E C.E15 D.0.5E-3
4、以下不能正确表示代数式2ab/(cd) 的C语言表达式是()。
A.2*a*b/c/d B.a*b/c/d*2 C.a/c/d*b*2 D.2*a*b/c*d
5、设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A.k++ B.k+=1 C.++k D.k+1
6、若有以下函数首部int fun(double x[10],int *n)则下面针对此函数声明语句中正确
的是()。
A.int fun(double x,int *n); B.int fun(double ,int);
C.int fun(double*x,int n); D.int fun(double *,int*);
7、若i为整型变量,则以下循环体执行次数是()。
for(i=2;i==0;) printf("%d",i--);
A.无限次 B. 0次 C. 1次 D. 2次
南京工程学院试卷共8 页第2 页
南京工程学院试卷共8页第6 页。
2012-2013学年二学期C语言期末考试试卷(D卷)班级:___________学号:___________姓名:___________得分:___________ 题号一二三四五六七八九十成绩复核得分阅卷题目部分,(卷面共有7题,100分,各大题标有题量和总分)一、编程题(7小题,共100分)1.已有变量定义和函数调用语句:int a=1,b=-5,c;c=fun(a,b);fun函数的作用是计算两个数之差的绝对值,并将差值返回调用函数,请编写fun函数。
fun(int x,int y){ }2.从键盘输入若干整数(数据个数应至少于50),其值在0至4的范围内,用-1作为输入结束的标志。
统计每个整数的个数。
试编程。
3.编写一个程序,在屏幕上输出你的姓名。
试着上机编辑、编译、运行你的程序。
4.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?5.输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
6.编写input()和output()函数输入,输出5个学生的数据记录。
7.一个最优美的图案。
2012-2013学年二学期C语言期末考试试卷(D卷)答案部分,(卷面共有7题,100.0分,各大题标有题量和总分)一、编程题(7小题,共100分)1.fun(int x, int y){int z;z = fabs(x-y);return(z);}2.#define M 50main(){int a[M], c[5], i, n = 0, x;printf(“Enter 0 or 1 or 2 or 3 or 4, to end with –1\n”);scanf(“%d”, &x);while (x != -1){if (x >= 0 && x <= 4){a[n] = x;n++;}scanf(“%d”, &x);}for (i=0; i<5; i++)c[i] = 0;for (i=0; i<n; i++)c[a[i]]++;printf(“The result is:\n”);for (i=0; i<=4; i++)printf(“%d:%d\n”,i c[i]);printf(“\n”);}3.#include <stdio.h>main(){printf("My Name is : Your Name!\n");}4.1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}5.程序源代码:main(){int number[10];input(number);max_min(number);output(number);}input(number)int number[10];{int i;for(i=0;i<9;i++)scanf("%d,",&number[i]);scanf("%d",&number[9]);}max_min(array)int array[10];{int *max,*min,k,l;int *p,*arr_end;arr_end=array+10;max=min=array;for(p=array+1;p<arr_end;p++)if(*p>*max) max=p;else if(*p<*min) min=p;k=*max;l=*min;*p=array[0];array[0]=l;l=*p;*p=array[9];array[9]=k;k=*p;return;}output(array)int array[10];{ int *p;for(p=array;p<array+9;p++)printf("%d,",*p);printf("%d\n",array[9]);}6.程序源代码:#define N 5struct student{ char num[6];char name[8];int score[4];} stu[N];input(stu)struct student stu[];{ int i,j;for(i=0;i<N;i++){ printf("\n please input %d of %d\n",i+1,N); printf("num: ");scanf("%s",stu[i].num);printf("name: ");scanf("%s",stu[i].name);for(j=0;j<3;j++){ printf("score %d.",j+1);scanf("%d",&stu[i].score[j]);}printf("\n");}}print(stu)struct student stu[];{ int i,j;printf("\nNo. Name Sco1 Sco2 Sco3\n");for(i=0;i<N;i++){ printf("%-6s%-10s",stu[i].num,stu[i].name); for(j=0;j<3;j++)printf("%-8d",stu[i].score[j]);printf("\n");}}main(){input();print();}7.程序源代码:#include "graphics.h"#include "math.h"#include "dos.h"#include "conio.h"#include "stdlib.h"#include "stdio.h"#include "stdarg.h"#define MAXPTS 15#define PI 3.1415926struct PTS {int x,y;};double AspectRatio=0.85;void LineToDemo(void){struct viewporttype vp;struct PTS points[MAXPTS];int i, j, h, w, xcenter, ycenter;int radius, angle, step;double rads;printf(" MoveTo / LineTo Demonstration" ); getviewsettings( &vp );h = vp.bottom - vp.top;w = vp.right - vp.left;xcenter = w / 2; /* Determine the center of circle */ycenter = h / 2;radius = (h - 30) / (AspectRatio * 2);step = 360 / MAXPTS; /* Determine # of increments */angle = 0; /* Begin at zero degrees */for( i=0 ; i<MAXPTS ; ++i ){ /* Determine circle intercepts */rads = (double)angle * PI / 180.0; /* Convert angle to radians */points[i].x = xcenter + (int)( cos(rads) * radius );points[i].y = ycenter - (int)( sin(rads) * radius * AspectRatio );angle += step; /* Move to next increment */}circle( xcenter, ycenter, radius ); /* Draw bounding circle */for( i=0 ; i<MAXPTS ; ++i ){ /* Draw the cords to the circle */for( j=i ; j<MAXPTS ; ++j ){ /* For each remaining intersect */moveto(points[i].x, points[i].y); /* Move to beginning of cord */lineto(points[j].x, points[j].y); /* Draw the cord */} } }main(){int driver,mode;driver=CGA;mode=CGAC0;initgraph(&driver,&mode,"");setcolor(3);setbkcolor(GREEN);LineToDemo();}试卷指标统计数据总题量总分值7 100章节编码题量分值章节说明01 1 8 函数04 1 14 数组11 1 8 C语言概述24 4 70 程序实例难度编码题量分值难度说明1 1 12 易2 4 60 中3 2 28 难题型编码题量分值题型说明03 7 100 编程题。