C语言程序设计模拟试题8(附答案)

本文由2009220176贡献 doc文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

《C 语言程序设计》模拟试卷八 3. 下列保留字中用于构成循环结构的是【】 A. if int a[3][3]={{1},{2},{3}}; int b[3][3]={1,2,3}; main() {printf(″﹪d \ n″,a[1][0] + b[0][0]);} 后输出的结果是【】 A. 0 B. 1 C. 2 D. 3 8. 执行下列程序 int a = 3, b = 4; void fun(int x1, int x2) {printf(″﹪d, ﹪d \ n″, x1 + x2, b);} main() {int a = 5, b = 6;fun(a, b);} 后输出的结果是【】 A. 3,4 B. 11,1 C. 11,4 D. 11,6 9. 将一个整数 10002 存到磁盘上, ASCII 码形式存储 以 和以二进制形式存储,占用的字节数分别是【】 A. 2 和 2 B. 2 和 5 C. 5 和 2 D. 5 和 5 10.执行如下程序 main() { int *p,a[10]; a[0]=10;a[1]=20; p=a; printf(“%d”,*(p++));} 则输出结果【】 A. 10 B. 20 C. 40 D . 无法确定 三、按给出的程序功能,在空格处,填写正确的程序语 按给出的程序功能,在空格处, 句,使程序完整。

(每题 6 分,共 18 分) 使程序完整。

(每题 。

( 1. 以下程序的功能是用选择法对数组 a 中的整数由小到 大进行排序。

 void sort(int b[],int n) { int i,j,t; for(i = 0;i<n - 1;i ++ ) for(;j<n;j ++ ) if(b[i]b[j]) 一、填空题。

(每空 2 分,共 10 分) 填空题。

(每空 。

( 1.实数在语言中又称 2.表达式 a = 1,a + 1,a + + 的值是 。

 3. 设 int i = 5;则循环语句 while (i > = 1) i - -;执行后, i 的值为。

 4.设 char string[] =″This_is_a_book!″; 则数组的长度应是 。

 5.设 int a[2][3] = {{2},{3}};则数组元素 的值为 3。

 二、单项选择题。

(每题 2 分,共在 20 分) 单项选择题。

(每题 。

( 1. C 语言程序编译时,程序中的注释部分【】 A. 参加编译,并会出现在目标程序中 B. 参加编译,但不会出现在目标程序中 C. 不参加编译,但会出现在目标程序中 D. 不参加编译,也不会出现在目标程序中 2.下列表达式的值为 0 的是【】 A. 3﹪5 B. 3/5.0 C. 3/5 D. 3<5 B. while C. switch D. default 4. 与语句 if(a>b) if(c>d)x = 1;else x = 2;等价的是【】 A. if(a>b){if(c>d) x = 1;else x = 2;} B. if(a>b){if(c>d) x = 1;} else x = 2; C. if((a>b) && (c>d)) x = 1;else x = 2; D. if(a< =b) x = 2;else if (c>d) x = 1; 5.设 char x =′a′; printf(″x = ﹪c, y = ﹪c \ n″, 97); 则 x, 的输出是【】 A. x = a,y = 97 B. x = 97,y = a C. x = 97,y = 97 D. x = a,y = a 6. 设 int a[][4]={1,2,3,4,5,6,7,8,9};则数组 a 的第一维的大小是【】 A. 2 B. 3 C. 4 D. 无确定值 7.执行下列程序 {t = b[i];;b[j]=t;} } main() { int a[]={5,8,6,2,7,4,1,3}; int i; sort(a,8); for(i = 0;i<8;i ++ ) printf(″﹪5d″,a[i]); printf(″\ n″); } 2. 输入一字符串(换行为结束标志)统计其中数字(0,1, 2,…,9 不单独统计)、空白和其它字符出现的次数。

 # include ″stdio.h″ main() { char c; int ; while((c = getchar())! =′\ n′) { if()digit + + ; else if(c = =′′‖c = =′\ t′) ++ blank; else ; } printf(″digit =﹪d,blank =﹪d,other =﹪d \ n″,digit,blank,other); } 3. 先为数组 a 输满数据,再为 x 输入一个数据,在数组 a 中找出第一个与 x 相等的元素并将其下标输出,若不 存在这样的元素,则输出“Not found!”标志。

 main() {int i,x,a[10]; for(i = 0;i<10;i ++ )scanf(″﹪d″,); scanf(″﹪d″,&x);printf(″﹪d″,x); 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 5.写一函数,使给定的一个二维数组(3╳3)转置。

main() {int a[10],m,n,t,i; m=1; n=2; for (i=0;i<20;i++) {a[i]=n/m; t=n; n=m+n; m=t; } for(i=0;i<20;i++) 模拟试卷八答案: 一、填空 1 浮点数 2 1 3 0 4 16 5 printf("%d\n",a[i]); } 2、 a[1][0] #include "stdio.h" main() for(i = 0;i<10;i ++) if()break; if (i 10)printf(″ position:﹪d \ n″,i); else printf(″ Not found! \ n″,x); } 四、按要求编写下列程序。

(1-4 题每题 10 分,第 5 题 按要求编写下列程序。

(1 。

( 12 分,共 52 分) 1. 有一分数序列 2/1,3/2,5/3,8/5,13/8,21/13……… 求这个数列的前 20 项的和。

 1 2. 打印所有的水仙花数。

 3. 编写一程序, 将两个字符串连接起来。

 不要用 strcat 函数。

 4.打印出扬辉三角(打印 10 行) 1 j=i+1 > b[i]=b[j] 6 B 二、选择 1 D 2 C 3 B 4 A 5 D {int i,j,k; for(i=1;i<=9;i++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) 7 D 8 C 9 B 10 B if (i*100+j*10+k==i*i*i+j*j*j+k*k*k) printf("%d\n",i*100+j*10+k); } 三、程序填空 3、 #include "stdio.h" 2 digit=0,blank=0,other=0 c>=’0’&&c<=’9’ ++other 3 &a[i] a[i]==x < main() {char a[80],b[40]; int i=0,j=0; scanf("%s",a); scanf("%s",b); 四、编写程序题 1、 while (a[i]!='\n') i++; i--; #include "stdio.h" while(b[j]!='\n') a[i++]=b[j++]; i--; a[i]='\n'; printf("%s",a); } #define N 3 int array[N][N]; void convert(int array[3][3]) /*函数类型可定义为 void, 也 可用默认的 int*/ {int i,j,t; /*因为函数形实参是数组,按地址传递*/ /*两个数组所用空间相同,函数无需返回值*/ for(i=0;i<N;i++) for(i=0;i<N;i++) {for(j=0;j<N;j++) printf("%5d",array[i][j]); printf("\n"); } } 4、 #include using namespace std; void main() { int a[10][10]; int i, j; for( i = 0; i< 10; i++) for(j=0; j<10; j++) { if(i == j) a[i][j] = 1; else if(j == 0) a[i][j] = 1; else a[i][j] = 0; } for(j=i+1;j<N;j++) /* j=i+1 防止两元素对调后再次恢复 原位 */ {t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t; } } main() { int i,j; void convert(int [][]); /*注意此处的 [ ][ ] 形式, 表明是二 维数组*/ printf("Input array:\n"); /* 因为函数原型处仅检查形参个 数、类型名、 for(i=0;i<N;i++) /* 顺序,而不检查形参名。

所以只写成 for( i = 1; i < 10; i++) for(j = 1; j<10; j++) a[i][j] = a[i-1][j-1] + a[i-1][j]; [ ][ ] 形式 for(j=0;j<N;j++) /* 即可。

仅对 void 时如此,对 int 似乎 不成立?*/ scanf("%d",&array[i][j]); for(i = 0; i < 10; i++) { for(j = 0; (j < 10) && a[i][j] != 0; j++) cout<<a[i][j]<<" "; cout<<endl; } } 5、 printf("\noriginal array:\n"); for(i=0;i<N;i++) {for(j=0;j<N;j++) printf("%5d",array[i][j]); printf("\n"); } convert(array); printf("convert array:\n");1。

合集下载

二级C++语言程序设计模拟试题及答案解析(8)

二级C++语言程序设计模拟试题及答案解析(8)

二级C++语言程序设计模拟试题及答案解析(8)(1/40)单项选择题第1题下面叙述中错误的是______。

A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为DebugD.软件测试应严格执行测试计划,排除测试的随意性下一题(2/40)单项选择题第2题下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是______。

A.cout<<internal<<32345;B.cout<<left<<12345;C.cout<<right<<12345;D.cout<<setw(6)<<12345;上一题下一题(3/40)单项选择题第3题有如下程序:#include<iostream>using namespace std;class test{private:int a;public:test(){cout<<"constructor"<<endl;}test(int a){cout<<a<<endl;}test(const test &_test){a=_test.a;cout<<"copy constructor"<<endl;}~test(){cout<<"destructor"<<endl;}};int main(){test A(3);return 0;}执行这个程序的输出结果是______。

A.3B.constructordestructorC.copy constructordestructorD.3destructor上一题下一题(4/40)单项选择题第4题索引属于A.模式B.内模式C.外模式D.概念模式上一题下一题(5/40)单项选择题第5题C++模板包括。

A.类模板和函数模板B.模板类和模板函数C.类和函数D.对象和函数上一题下一题(6/40)单项选择题第6题有如下程序:#include<iostream>using namespace std;class Base{protected:Base(){cout<<'Base';}Base(char c){cout<<c;}};class Derived:public Base{public:Derived(char c){cout<<c;}};int main(){Derived d('Derived');return 0;}执行这个程序屏幕上将显示输出。

c语言模拟考试试题及答案

c语言模拟考试试题及答案

c语言模拟考试试题及答案C语言模拟考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable#name答案:B2. 下列哪个选项是C语言中的关键字?A. charB. variableC. ifD. string答案:C3. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C4. 在C语言中,以下哪个语句用于定义一个整型变量?A. int var;B. float var;C. double var;D. char var;答案:A5. 下列哪个选项是C语言中的控制结构?A. switch-caseB. if-elseC. for-loopD. All of the above答案:D6. 在C语言中,哪个函数用于计算两个数的和?A. pow()B. sqrt()C. sum()D. None of the above答案:D(注:C语言标准库中没有sum()函数)7. 以下哪个选项是C语言中数组的正确声明方式?A. int array[10] = {1, 2, 3};B. int [10] array = {1, 2, 3};C. Both A and BD. None of the above答案:C8. 在C语言中,哪个函数用于将整数转换为字符串?A. itoa()B. atoi()C. printf()D. sprintf()答案:A9. 下列哪个选项是C语言中正确的函数定义?A. int function(int a, int b) { ... }B. int function(int a; int b) { ... }C. int function(int a, int b) { ... }D. int function(int a, b) { ... }答案:C10. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. methodD. void答案:D二、填空题(每空2分,共20分)11. 在C语言中,使用____关键字可以定义一个函数。

C语言程序设计模拟题(含答案)

C语言程序设计模拟题(含答案)

C语言程序设计模拟题(含答案)C语言程序设计试题一、单项选择题(本题共25小题,每小题2分,共50分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其正确答案涂写在答题卡上。

错选、多选或未选均无分。

1. 以下正确的C语言自定义标识符是__A____。

A. _1aB. 2a_C. doD. a.122. 在C语言中,错误的常数表示是___D____。

A. 0LB.-0x6aLC. '6'D. 1.234E3.53. 设int a, x=2; 执行语句a=x>0?3*x:x=10;后,变量x的值是___B____。

A. 1B. 2C. 6D. 104.设有以下程序段:int x=2,y=2,z=0,a;a=++x||++y&&z++;printf("%d,%d,%d\n",x,y,z);执行后输出的结果是___C______。

A. 2, 2, 0B. 3, 3,1C. 3, 2, 0D. 3, 2, 15. 在C语言中,字符串"\\TOP\t\65\""的长度是__B_____。

A. 5 B.7C. 8D. 126. 设float x,由键盘输入:12.45, 能正确读入数据的输入语句是___C_____A_。

A. scanf("%5f",&x)B. scanf("%5d",&x);C. scanf("%f",x);D. scanf("%s",&x);7.逗号表达式a=2*6,a*3,a+5的值是___B______。

A. 12B. 17C.36 D. 418. C语言程序中,整型常量的书写形式不包括___A______。

A. 二进制B. 八进制C. 十进制D. 十六进制9. 在C语言中,下列运算符中结合性属于自右向左的是________B_。

(完整版)C语言程序设计练习题(含程序及参考答案)

(完整版)C语言程序设计练习题(含程序及参考答案)

(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。

#includeint fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写⼀个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运⾏后 a 中的值为8,b中的值为3。

#includevoid fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输⼊3个数,将最⼤值放在变量a中,最⼩值放在变量c中。

C语言程序设计及实验指导练习及习题参考答案(8--10)

C语言程序设计及实验指导练习及习题参考答案(8--10)

C语言程序设计及实验指导练习及习题参考答案(8--10) 8练习参考答案1、练习8-1.如果有定义:intm,n=5,某p=&m;与m=n等价的语句是BA.m=某p;B.某p=某&n;C.m=&n;D.m=某某p;8-2.设计一个程序计算输入的两个数的和与差,要求自定义一个函数um_diff(floatop1,floatop2,float某pum,float某pdiff),其中op1和op2是输入的两个数,某pum和某pdiff是计算得出的和与差。

解答:#includeintmain(void){floatop1,op2,um,diff;voidum_diff(floatop1,floatop2,float某pum,float某pdiff);printf(“inputop1andop2:“);canf(“%f%f”,&op1,&op2);um_d iff(op1,op2,&um,&diff);printf(“%f+%f=%f;%f-%f=%f\\n”,op1,op2,um,op1,op2,diff);return0;}voidum_diff(floatop1,floatop2,float某pum,float某pdiff){某pum=op1+op2;某pdiff=op1–op2;}8-3.两个相同类型的指针变量能不能相加?为什么?解答:不能。

因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在C语言中指针变量相加是非法的。

8-4.根据表8.2所示,这组数据的冒泡排序其实循环到第6遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1次循环。

请思考如何改进冒泡排序算法并编程实现(提示:当发现一遍循环后没有数据发生交换,说明已经排好序了)。

解答:设置一个标志变量flag,进入一轮循环前设置为0,在循环中有发生数据交换就改写flag值为1。

C语言程序设计(第2版)李学刚 课堂实践答案 (8)[8页]

C语言程序设计(第2版)李学刚  课堂实践答案 (8)[8页]

单元8 拓展训练答案一、单项选择题1.下面有关结构体的叙述中,不正确的是(C )。

A.结构体中的每个成员均须作类型说明B.成员的类型可以是基本类型C.成员的类型不能是其它的结构体D.成员的类型可以是数组、指针2.下面有关typedef的叙述中,正确的是(D )。

A.typedef用于定义新类型B.typedef用于给已定义变量取别名C.typedef用于定义新变量D.typedef用于给已定义类型取别名3.若有如下定义,则下列叙述中正确的是(C )。

typedef struct stu { int a, b; } student ;A.stu 是结构体变量B.student 是结构体变量C.student 是结构体类型D.a和b是结构体变量4.若有以下说明和定义typedef int *INTEGER;INTEGER p,*q;以下叙述正确的是(A )。

A.p是基类型为int的指针变量B.可用INTEGER代替intC.q是基类型为int的指针变量D.P是int型变量5.设有以下说明语句struct ex{ int x;float y;char z;}example;则下面的叙述中不正确的是( B )。

A.struct是结构体类型的关键字B.example是结构体类型C.x,y,z都是结构体成员名D.struct ex是结构体类型名6.以下叙述中正确的是(C )。

A.结构体中的成员不能是结构体类型B.结构体的类型不能是指针类型C.结构体中成员的名字可以和结构体外其他变量的名称相同D.在定义结构体类型时就给结构体分配存储空间7.设有以下定义,正确的赋值语句是(A )。

struct student{int num;char name[10];}stu,*p;A.p=&stu.num; B.p=stu;C.p=&stu; D.p=(struct student*)stu.num; 8.若有如下定义,则下列输入语句中正确的是(B )。

c程序语言设计考试题及答案

c程序语言设计考试题及答案一、单项选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是:A. varB. letC. intD. define答案:C2. 下列哪个选项不是C语言中的控制结构?A. 顺序结构B. 选择结构C. 循环结构D. 递归结构答案:D3. C语言中,用于表示逻辑“与”操作的运算符是:A. &&B. ||C. !D. =答案:A4. 在C语言中,哪个函数用于计算并返回数组中元素的个数?A. sizeofB. countC. lengthD. size5. 下列哪个选项不是C语言中的基本数据类型?A. intB. floatC. charD. string答案:D6. C语言中,用于声明指针变量的关键字是:A. pointerB. ptrC. *D. ref答案:C7. 在C语言中,哪个运算符用于取地址?A. &B. *C. %D. ^答案:A8. 下列哪个选项是C语言中合法的标识符?A. 2variableB. variable2C. variable-nameD. $variable答案:B9. C语言中,用于定义函数的关键字是:B. functionC. defD. void答案:B10. 在C语言中,哪个函数用于输出字符串?A. printfB. coutC. putsD. print答案:C二、填空题(每题2分,共20分)1. C语言标准库函数中,用于计算两个数的差的函数是________。

答案:abs2. 在C语言中,________运算符用于比较两个值是否相等。

答案:==3. C语言中,________关键字用于声明一个函数。

答案:void4. C语言中,________关键字用于声明一个结构体。

答案:struct5. 在C语言中,________关键字用于声明一个枚举类型。

答案:enum6. C语言中,________函数用于将整数转换为字符串。

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

C语言程序设计考试试卷(附答案)C语言程序设计考试试卷(附答案)第一部分:选择题(共40题,每题2分,总分80分)1. 下列哪个关键字用于定义常量?A. constB. intC. staticD. volatile2. 在C语言中,以下哪个运算符用于将一个整数转换为浮点数?A. *B. /C. %D. +3. 下列代码的输出结果是什么?```c#include <stdio.h>void main() {int x = 2, y = 3;printf("%d", x++ * ++y);}```A. 7B. 8C. 9D. 104. C语言中,以下哪个运算符用于从一个整数中提取指定位数的值?A. <<B. >>C. |D. &5. 下列代码的输出结果是什么?```c#include <stdio.h>void main() {int arr[] = {1, 2, 3, 4, 5};int *ptr = arr + 2;printf("%d", *ptr);}```A. 1B. 2C. 3D. 4......40. 下列关于结构体的说法中,错误的是:A. 结构体可以包含不同类型的成员变量B. 结构体可以作为函数参数和返回值C. 结构体可以使用“->”来访问成员变量D. 结构体可以使用“sizeof()”函数获取其大小第二部分:填空题(共10题,每题4分,总分40分)1. 以下是有效的C语言标识符:___hello___2. 下列代码的运行结果是:___88___```c#include <stdio.h>void main() {int x = 8;printf("%d", x++);}```3. 在C语言中,以下是有效的声明:___int i, *p;___4. 下列代码的输出结果是:___10___```c#include <stdio.h>void main() {int arr[5] = {1, 2, 3, 4, 5};int *ptr = arr + 2;printf("%d", *(ptr + 2));}```5. 在C语言中,以下是合法的函数声明:___void fun(int x, float y);___......第三部分:编程题(共3题,每题20分,总分60分)1. 编写一个函数,接受一个整型数组和数组的长度作为参数,返回数组中的最大值。

《C语言程序设计(何钦铭颜晖主编)》习题8答案

P173习题8 第一题#include<stdio.h>int main(void){char ch;int a[10];int i,j,m;printf("请输入10个整数:\n");for(i=0;i<10;i++){printf("请输入%d第个数:",i+1);scanf("%d",&a[i]);}printf("请输入A或D:");scanf(" %c",&ch);if(ch=='A'){for(i=0;i<9;i++){for(j=i+1;j<10;j++){if(a[i]>a[j]){m=a[i];a[i]=a[j];a[j]=m;}}}}else if(ch=='D'){for(i=0;i<9;i++){for(j=i+1;j<10;j++){if(a[i]<a[j]){m=a[i];a[i]=a[j];a[j]=m;}}}}for(i=0;i<10;i++){printf("%d ",a[i]);}return 0;}第二题#include<stdio.h>int main(void){int a[10];int i,j,x;int search(int list[],int i,int x);printf("输入10个整数:");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("输入一个整数x:");scanf("%d",&x);j=0;for(i=0;i<10;i++){if(search(a,i,x)!=-1){j++;printf("%d",search(a,i,x));}else;}if(j==0)printf("-1");return 0;}int search(int list[],int i,int x){int j;j=0;if(x==list[i])j++;else;if(j==0)return -1;elsereturn i;}第三题#include<stdio.h>void houyi(int a[],int *p,int n,int m);int main(void){int a[20];int i,m,n;printf("请输入整数n:");scanf("%d",&n);printf("请输入%d个整数:",n);for(i=0;i<n;i++)scanf("%d",&a[i]);printf("请输入您要后移的位数m:"); scanf("%d",&m);houyi(a,a,n,m);for(i=0;i<n;i++)printf("%d",a[i]);printf("\n");return 0;}void houyi(int a[],int *p,int n,int m) {int i;int b[20];for(i=0;i<n;i++)b[i]=a[i];for(i=0;i<n;i++){if(i<=n-m-1)*(p+i+m)=b[i];else*(p+(i+m)%n)=b[i];}}第四题#include<stdio.h>void swap2(int *,int *);void bubble(int a[],int n);int main(void){int n,a[8];int i;printf("Enter n(n<=8):");scanf("%d",&n);printf("Enter a[%d]:",n);for(i=0;i<n;i++)scanf("%d",&a[i]);bubble(a,n);printf("After sorted,a[%d]=",n);for(i=0;i<n;i++)printf("%3d",a[i]);return 0;}void bubble(int a[],int n){int i,j,m;static int b[8];for(i=1;i<n;i++){for(j=0;j<n-i;j++){if(a[j]>a[j+1])swap2(&a[j],&a[j+1]);for(m=0;m<n;m++){if(a[m]<=a[m+1])b[m]++;}}if(b[m]==n-1)break;}}void swap2(int *px,int *py){int t;t=*px;*px=*py;*py=t;}第五题#include<stdio.h>#include<string.h>void mcopy(char *s,int m);int main(void){int i,m,l;char str[100];printf("请输入您要输入的字符串:");gets(str);printf("您将从原字符串的第m位复制新字符串,请输入m:\n");scanf("%d",&m);printf("复制后,新的字符串为:");mcopy(str,m);return 0;}void mcopy(char *s,int m){printf("%s\n",s+m-1);}第六题#include<stdio.h>#include<string.h>void delchar(char *,char c);int main(void){char str[80];char ch;printf("Enter a string:");gets(str);printf("Enter delete char:");scanf("%c",&ch);delchar(str,ch);printf("%s\n",str);return 0;}void delchar(char *s,char c){int i,j;char str1[80];j=0;for(i=0;s[i]!='\0';i++){if(s[i]!=c){str1[j]=s[i];j++;}}str1[j]='\0';for(i=0;str1[i]!='\0';i++,s++){*s=str1[i];}*s='\0';}第七题#include<stdio.h>#include<string.h>struct zfc{char str[80];};int main(void){int i,j;char str[80],str1[80];struct zfc s[5];for(i=0;i<5;i++){printf("请输入第%d个字符串:",i+1);scanf("%s",s[i].str);}for(i=0;i<=3;i++){for(j=i+1;j<=4;j++){if(strcmp(s[i].str,s[j].str)>0){strcpy(str1,s[i].str);strcpy(s[i].str,s[j].str);strcpy(s[j].str,str1);}}}for(i=0;i<5;i++){puts(s[i].str);}return 0;}第八题#include<stdio.h>#include<string.h>int main(void){int l,i;char str[80],str1[80];char *p,*q;p=str;q=str1;printf("请输入一串字符:");scanf("%s",str);l=strlen(str);for(i=0;*p!='\0';p++,i++){*(q+l-1-i)=*p;}*(q+l)='\0';if(strcmp(str,str1)==0)printf("输入的字符串是“回文”!\n");elseprintf("输入的字符串不是“回文”!\n");return 0;}第九题#include<stdio.h>#include<string.h>int main(void){char str[80];char *p;p=str;int n1,n2,n3,n4,n5;printf("输入一行文字:");gets(str);n1=n2=n3=n4=n5=0;for(;*p!='\0';p++){if((*p>='A')&&(*p<='Z'))n1++;else if((*p>='a')&&(*p<='z'))n2++;else if(*p==' ')n3++;else if((*p>='0')&&(*p<='9'))n4++;elsen5++;}printf("大写字母字符的个数为:%d\n",n1);printf("小写字母字符的个数为:%d\n",n2);printf("空格字符的个数为: %d\n",n3);printf("数字字符的个数为: %d\n",n4);printf("其他字符的个数为: %d\n",n5);return 0;}第十题#include<stdio.h>#include<string.h>int strcomp(char s1[80],char s2[80]);int main(void){int m;char str1[80],str2[80];printf("请输入第一个字符串:");scanf("%s",str1);printf("请输入第二个字符串:");scanf("%s",str2);m=strcomp(str1,str2);if(m==1)printf("str1>str2\n");else if(m==0)printf("str1=str2\n");elseprintf("str1<str2\n");return 0;}int strcomp(char s1[80],char s2[80]){int a;if(strcmp(s1,s2)>0)a=1;else if(strcmp(s1,s2)==0)a=0;elsea=-1;return a;}第十一题#include<stdio.h>#include<string.h>void fushu(char *p);int main(void){char str[80];printf("请输入一个英语名词单词:");scanf("%s",str);fushu(str);puts(str);return 0;}void fushu(char *p){int i,l;l=0;for(i=0;*(p+i)!='\0';i++){l++;}if(*(p+l-1)=='y'){*(p+l)='e';*(p+l+1)='s';*(p+l+2)='\0';}elseif((*(p+l-1)=='s')||(*(p+l-1)=='x')||((*(p+l-2)=='c')&&(*(p+l-1)=='h'))||((*(p+l-2)=='s')&&(*(p+l-1 )=='h'))){*(p+l)='e';*(p+l+1)='s';*(p+l+2)='\0';}else if(*(p+l-1)=='o'){*(p+l)='e';*(p+l+1)='s';*(p+l+2)='\0';}else{*(p+l)='s';*(p+l+1)='\0';}}第十二题#include<stdio.h>#include<stdlib.h>int main(void){int i,j,a,n,sum,average;int *p;printf("Enter n:");scanf("%d",&n);if((p=(int*)calloc(n,sizeof(int)))==NULL){printf("Not able to allocate memory.\n");exit(1);}printf("您将输入%d个学生的成绩!\n",n);for(i=0;i<n;i++){printf("请输入第%d个学生的成绩:",i+1);scanf("%d",p+i);}sum=0;for(i=0;i<n;i++)sum=sum+*(p+i);average=sum/n;for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(*(p+i)>*(p+j)){a=*(p+i);*(p+i)=*(p+j);*(p+j)=a;}}}printf("学生的平均成绩是:%d\n",average);printf("学生的最高成绩是:%d\n",*(p+n-1));printf("学生的最低成绩是:%d\n",*p);return 0;}。

c语言程序设计试题及答案解析

c语言程序设计试题及答案解析C语言程序设计试题及答案解析一、选择题1. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C2. C语言中,以下哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C二、填空题1. 在C语言中,用于定义一个整型变量的关键字是______。

答案:int2. 若有以下C语言代码段:```cint a = 5, b = 10;printf("%d", a + b);```执行后输出的结果是______。

答案:15三、简答题1. 简述C语言中数组的定义和初始化方式。

答案:在C语言中,数组是一种基本的数据结构,用于存储具有相同类型的多个元素。

数组的定义方式为:类型名数组名[数组大小];初始化方式可以是静态初始化,即在定义时直接赋值,如:int arr[5] = {1, 2, 3, 4, 5}; 或者动态初始化,即在定义后使用循环或赋值语句逐一赋值。

四、编程题1. 编写一个C语言程序,实现求一个整数的阶乘。

```c#include <stdio.h>int factorial(int n) {if (n == 0)return 1;elsereturn n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d 的阶乘是:%d\n", num, factorial(num));return 0;}```五、分析题1. 请分析以下C语言代码段的运行结果,并解释原因。

```c#include <stdio.h>int main() {int x = 10;printf("%d", x++);return 0;}```答案:代码段的运行结果是10。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档