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

《C语言程序设计》试题八 ..................................................... 1 一、选择题 ............................................................... 1 二、填空题 ............................................................... 2 三、判断题 ............................................................... 3 四、程序填空题 ........................................................... 3 五、编程题 (25分) ....................................................... 5 六、附加题 ............................................................... 5 《C语言程序设计》试题八答案 ................................................. 6

《C语言程序设计》试题八

一、选择题 1.一个C语言程序是由( )构成。 A.语句 B.行号 C.数据 D.函数 2.下面标识符中正确的是( )。 A.a#bc B.123ABC C.sime D.Y·M·D 3.在C语言中,存储一个整型、字符型、双精度实型变量所需的字节数是( )。 )。 )。 )。 A.2、1、8 B.4、1、4 C.4、1、4 D.2、2、8 4.为了避免嵌套的条件分支语句 if--else中的else总是与( ) 组成成对关系。 A. 缩排位置相同的 B. 在其之前未配对的 C. 在其之前未配对的最近的if D. 在同一行上的if 5.下列表达式的结果正确的是( )。 int a,b,c,d; a=b=c=d=2; d=a+1==3?b=a+2:a+3 A.2 B.4 C.3 D.5

二、填空题 1.在C语言中,正确的标识符是由______________________组成的,且由_______________开头的。 2. 设x=3,那么表达式y=(++x)+(++x)的结果为_________,表达式执行后,变量x的结果为_________。 3. 一个变量的指针是指_________________________________________________________________。 4. 组成数组元素的特点是_______________________________________________; 组成结构体元素的特点是________________________________________________。 5. 在C语言程序中,对文件进行操作首先要______________________________;然后对文件进行操作,最后要对文件实行__________________________________操作,防止文件中信息的丢失。 6. 对字符串进行操作的函数有_______________________________________________________等。 7. C语言程序是由___________________构成的,而C语言的函数是由____________________构成的。 8. 要想定义整型变量a , 实型变量 b , 字符型的变量c,应该使用的正确语句为______________________________________________________________________________________。 9. 写出下面表达式的值 3*5/7+7%3_______________________ x=2 ; y=4; (x++)+y _________________________ 3+4>=7-10_______________________ 3>4 ? 3%2: 1 ______________________________ x=2,y=2;++x&&++y_________________ x=3 ; x+=x-=2 ______________________________ 三、判断题 1. C语言的一个特点是可以对计算机硬件进行操作 ( ) 2. 在循环过程中,使用break语句和continue语句的作用是一样的 ( ) 3. 在函数的定义和调用过程中,形式参数和实在参数数目可以不一致 ( ) 4. 指针变量可以接收任何类型的值 ( ) 5. 在C语言程序设计中,字符数组和字符串不是完全一样的概念 ( ) 6. 文件指针是结构体类型,用符号file来表示 ( ) 7. 选择结构(if语句)和循环结构都可以使用嵌套形式 ( ) 8. 在定义二维数组时,可以将该数组的两个维数全部省略 ( ) 9. 逻辑运算符 && || ! 的运算顺序是 ! 优先于 && 优先于 || ( ) 10. 任何数组都可以实现整体使用操作 ( )

四、程序填空题 1.下面是实现打印九九乘法表的程序,请在画线的位置填上适当的语句,使程序(段)完整。 main() { int i , j , k; for(i=1;_____________; i++) { for(j=1;______________; j++) printf(“%d*%d=%d”,_______________); printf(________________); } } 2.自己设计一个自定义函数,实现求两个数的最大数的功能,自定义函数如下: int max(x,y) int x , y ; {

} 3.设有如下面的结构体,请用C语言的语句定义出正确的结构体形式: 学生信息:包括(姓名,性别,年龄,分数),并且定义变量stud和数组stud1[30] struct student {

} 4. 根据给出的程序段,请写出正确的结果 x=1 ; sum=1 ; for (x=1 ; x<=5 ; x++) sum=sum*x; 上面的程序段实现的功能是:______________________________________________________ ; 其运行结果为______________________________________________________________________。 5.设有如下的语句。 int a=43,b,c; b=23; c=a++ * --b; (1)上面的语句段执行后a= b= c= ; (2)简述a++和++a的相同点和不同点:

6.设有如下的程序: main( ) { int i=3,*p1; int a[3]={15,30,45},*p2; p1=&i; p2=a; p1=p2+2; printf(“%d,%d\n”,*p1,*p2); } 程序运行结果是: 。

五、编程题 (25分) 1.编程实现对10个整数进行冒泡排序(要求排成升序)。 2.编程实现求下面的式子的结果 3.编程实现将文本文件file1.dat中的内容复制到文本文件file2.dat中去

六、附加题 用C语言程序实现在已知链表中的第三个位置插入数值为a的程序 《C语言程序设计》试题八答案 一、选择题 1.D 2. C 3. A 4. C 5. B

二、填空题 1.字母、数字、下划线;以字母、下划线开头。 2.10;5。 3. 该变量的地址。 4.一组数据类型相同的元素构成的;一组数据类型不同的元素构成的。 5. 打开;关闭。 6.字符串长度、取子字符串、字符串替换、字符串复制等。 7. 函数;语句。 8. int a ; float b ; char c ; 9 9 9.3 6 1 1 1 2 三、判断题

1. 对 2. 错 3. 错 4. 错 5. 对 6. 错 7. 对 8. 错 9.对 10. 错 四、程序填空题 1. i<=9 j<=9 printf(“%d*%d=%d”,i,j,i*j); printf(“\n”); i , j , k; 2. int z; if (x>=y) z=x; else z=y; return z; 3. char name[20]; char sex; int age; float score; 4. 实现功能:计算连续数之积, 即sum=1*2*3*4*5 ; 运行结果:sum=120 5. 44 22 946 a++:先加1,后使用表达式的值;++a表示先加1,后使用表达式的值,它们最后的结果使a加1。 6.45,15 五、编程题

1.编程实现对12个整数进行冒泡排序(要求排成升序)。 Main() { int a[12]; int m,n,p; for (m=0;m<=11;m++)(m=0;m<=11;m++) scanf(“%d”,&a[m]); for (m=0;m<=11;m++) for(n=0;n<11-m;n++) if(a[n]>a[n+1]) { p=a[n]; a[n]=a[n+1]; a[n+1]=p; } for (m=0;m<=11;m++) printf(“%d”,a[m]); } 2.编程实现求下面的式子的结果 # include “math.h” main() { float x,y; scanf(“%f”&x); if (x>6) y=(x-3)/(2*x-12); else y=-2*x*x+4*x-10; printf(“y=%f”,y); } 3.编程实现将文本文件file1.dat中的内容复制到文本文件file2.dat中去 main() { char ch; FILE *fp1,*fp2; Fp1=fopen(“file1.dat”, “r”); Fp2=fopen(“file2.dat”, “w”);

合集下载

C语言程序设计试题(卷)集与答案解析

C语言程序设计试题(卷)集与答案解析
C 语言程序设计试题(卷)集与答案解析
第一章 基础知识 一.填空 1. 每个 C 程序都必须有且仅有一个________ 函数。 2. C 语言程序开发到执行通常要经过 6 个阶段即编辑、预处理、 ________、 链接 、加载 和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计 算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为 低级语言和________两大类 。 6. C 语言是由________组成的。 7. C 语言的函数可分为主函数 main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和 函数体。 9. 编译是将 C 语言所编写的源程序________成机器代码,也称 为建立目标代码程序的过程。 10. 程序是由某种程序设计语言 编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制 计算机本身软硬件协调工作 ,并使其设备充分发挥效力,方便 用户使用的系统软件程序,称为操作系统;而为办公自动 化 (OA)、管理信息系统(MIS)、人工智能、电子商务、网络互 联等等应用而开发的软件程
12. 实数 473.468 写成规范化指数形式,则应为 ______。 13. 实数 0.0453 写成规范化指数形式,则应为 ______。 14. 将 0x123 转换为二进制等于 ______。 15. 字符’A’表示成十六进制等于 ______。 16. 在 C 语言中,称代表常量的标识符为 ______。 17. C语言中是用编译预处理命令______ 来定义符号常量 18. 在 C 语言中,以反斜杠符(\\)开头,后跟字符的字符序列, 称之为 ______ ,主 要用来表示控制及不可见的字符或者一些图形符号 19. 语句 printf(\执行的结果输出是 ______。 20. 语句 printf(“b”)执行的结果输出是______。 21. 语句 printf(“\\\\b”)执行的结果输出是 ______。 22. 语句 printf(\执行的结果输出是 ______。 23. 若有 char ch1; ch1='a'+4; 则语句 printf(\的输出结果为 ______。 24. 字符串常量“Hello, everyone!”占据的内存空间为______ 个字节 25. 字符串常量“Hello,Bob!”占据的内存空间为 ______ 个字 节 26. 十进制整型常量由 0~9 个数据组成,但不能以______ 开始, 没有小数部分 27. 十六进制常量由 0~9 和______ 组成

C语言程序设计(谭浩强)第八章详细课后答案

C语言程序设计(谭浩强)第八章详细课后答案

#if 0 //8.1#include<stdio.h>#include<math.h>void main(){int Common_divisor(int a,int b);int Common_mutiple(int m,int n);int result_1,result_2;int number_1,number_2;printf("Enter number_1 and number_2 value:");scanf("%d,%d",&number_1,&number_2);result_1 = Common_divisor(number_1,number_2);result_2 = Common_mutiple(number_1,number_2);printf("最大公约数:%d\n最小公倍数:%d\n",result_1,result_2); }int Common_divisor(int a,int b){int r = 1;while(r != 0){if(a>b){r = a%b;a = b;b = r;if(r == 0){return a;break;}}else{r = b%a;b = a;if(r == 0){return b;break;}a = r;}}}int Common_mutiple(int m,int n){int Common_divisor(int a,int b);int temp = 0,result = 0;temp = Common_divisor(m,n);result = (m*n)/temp;return result;}#endif#if 0 //8.2#include<stdio.h>#include<math.h>float result_1 =0.0,result_2 = 0.0;void main(){void Funvtion_1(float a,float b,float temp);void Function_2(float a,float b);float a,b,c;float temp;printf("Enter a,b,c value:");scanf("%f,%f,%f",&a,&b,&c);temp = b*b-4*a*c;if(temp > 0){Funvtion_1(a,b,temp);printf("x1 = %.3f,x2 = %.3f\n",result_1,result_2);}else if(temp < 0){printf("此函数没有根!\n");}else{Function_2(a,b);printf("x1 = x2 = %.3f\n",result_1);}}void Funvtion_1(float a,float b,float temp){result_1 = (-b+temp)/(2*a);result_2 = (-b-temp)/(2*a); }void Function_2(float a,float b) {result_1 = (-b)/(2*a);}#endif#if 0 //8.3#include<stdio.h>#include<math.h>void main(){void Prime(int n);int m;printf("Enter m value:");scanf("%d",&m);Prime(m);}void Prime(int n){int i = 0 ,k;k = (int)sqrt(n);for(i = 2; i <= k;i++){if(n%i == 0){break;}}if(i > k){printf("The number %d is a prime!\n",n);}else{printf("The number %d isn't a prime!\n",n);}}#endif#if 0#include<stdio.h>#include<math.h>int c[3][3];void main(){void Function(int b[3][3]);int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};int i,j;// int d[3][3];int k = sizeof(a[2])/sizeof(int); //列数int n = sizeof(a)/sizeof(int);for(i = 0; i < n/k;i++){for(j = 0;j < k;j++){printf("%d ",a[i][j]);}printf("\n");}Function(a);for(i = 0; i < k;i++){for(j = 0;j < n/k;j++){printf("%d ",c[i][j]);}printf("\n");}}void Function(int b[3][3]){int i = 0,j = 0;int k = sizeof(b[3])/sizeof(int);int n = sizeof(b)/sizeof(int);for(i = 0;i < k ;++i){for(j = 0;j < k; ++j){c[j][i] = b[i][j];}}}#endif#if 0#include<stdio.h>#include<math.h>#include<string.h>void main(){void Function(char a[100],char b[100]);char a[100];extern int b[100];int n = sizeof(a);printf("Enter a Array:");gets(a);Function(a,b);}void Function(char a[],char b[]){int i = 0;int n = sizeof(a)/sizeof(char);int m = strlen(a);for(i = 0; i < m;i++){b[i] = a[m-1-i];}//printf("put b Array:");//puts(b);for(i = 0;i < m;i++){putchar(b[i]);}}#endif#if 0 //8.6#include<stdio.h>#include<math.h>void main(){char a[20];char b[10];printf("Enter string a value:");gets(a);printf("Enter string b value:");gets(b);strcat(a,b);puts(a);}#endif#if 0 //8.6#include<stdio.h>#include<math.h>#include<string.h>int a[20];void main(){void Connect(char a[],char b[]);char b[10];printf("Enter string a value:");gets(a);printf("Enter string b value:");gets(b);Connect(a,b);// puts(a);printf("%s",a);}void Connect(char a[],char b[]) {int i = 0;int j = 0;while(a[i] != '\0'){i++;}while(b[j] != '\0'){a[i++] = b[j++];}// a[i] = '\0';}#endif#if 0//8.7#include<stdio.h>#include<math.h>#include<string.h>char b[100];void main(){void Research_vowel(char a[]);char a[50];printf("Enter string a value:");gets(a);Research_vowel(a);puts(b);}void Research_vowel(char a[]){int i = 0,j = 0;for(; i < strlen(a);i++){if(a[i] == 'a'|| a[i] == 'e' || a[i] == 'i' || a[i] == 'o' || a[i] == 'u'){b[j] = a[i];j++;}}#endif#if 0//8.8#include<stdio.h>#include<math.h>char a[4];void main(){void Divide(int n);int n = 0,i = 0;printf("Enter n value(<10000):");scanf("%d",&n);Divide(n);for(;i<4;i++){printf("%d ",a[i]);}printf("\n");}void Divide(int n)int i = 0,c = 0,b = 0,m = 1000;while(m >= 1){c = n/m;b = n%m;m = m/10;a[i] = c;n = b;i++;}}#endif#if 0//8.9#include<stdio.h>#include<math.h>#include<string.h>int m = 0,n = 0,r = 0,l = 0;void main(){void Research_number(char a[]);char a[50];int i = 0;printf("enter string value:");gets(a);/*for(;i<strlen(a);i++){printf("%c",a[i]);}*/puts(a);puts("");Research_number(a);printf("字母个数是:%d,数字个数是:%d,空格个数是:%d,其它:%d\n",m,n,r,l);}void Research_number(char a[]){int i = 0;for(i = 0;i<strlen(a);i++){if((a[i] >= 'a' && a[i] <= 'z') || (a[i] >= 'A' && a[i] <= 'Z')){m++;}else if(a[i] > 47 && a[i] < 58){n++;}else if(a[i] == 32){r++;}else{l++;}}}#endif#if 0 //8.10#include<stdio.h>#include<math.h>#include<string.h>void main(){void Array(char a[]);char b[20];printf("Enter b string(<20):");gets(b);printf("Longest word is : ");Array(b);}void Array(char a[]){int i = 0,place = 0,point = 0,length = 1; //point表示最长单词的开始位置place表示最长单词最后的一个位置int max = 0,j = 0;int flag = 0; //为0 时是空格为1时是单词max = length;for(i = 0;i<=strlen(a);i++){if(a[i] != ' ' && a[i] != '\0'){if(0 == flag){j = i;flag = 1;}elselength++; //这个题让我做的非常的难过以后要好好的复习}else{flag = 0;if(max < length){max = length;point = j;place = i;}length = 1;}}for(i = point;i <= place;i++){printf("%c",a[i]);}printf("\n");}/*int judge_words(char b[20]){int i = 0,flag = 1;for(i = 0;i < strlen(b); i++){if((a[i] >= 'a' && a[i] <= 'z') || (a[i] >= 'A' && a[i] <= 'Z')){flag = 1;}else{flag = 0;}}}*/#if 0 //8.11#include<stdio.h>#include<math.h>void main(){void bubbling(char a[]);char a[10];printf("enter string a value:");gets(a);bubbling(a);puts(a);}void bubbling(char a[]){int i = 0,j = 0;char temp;for(i = 0;i<strlen(a) - 1;i++){for( j = 0;j<strlen(a)-1-i;j++)if(a[j] > a[j+1]){temp = a[j];a[j] = a[j+1];a[j+1] = temp;}}}}#endif#if 0 //8.12#include<stdio.h>#include<math.h>void main(){float Function(float x);float x = 1.5,x1 = 0.0;x1 = Function(x);printf("%.3f\n",x1);}float Function(float x){float x1;float y,y1;while(fabs(y1)>=1e-6){x = x1;y1 = x*x*x+2*x*x+3*x+4;y = 3*x*x+4*x+3;x1 = x - (y1/y);}return x1;}#endif#if 0//8.13#include<stdio.h>#include<math.h>void main(){float p(float x,int n);float x = 0.0,result = 0.0;int n = 0;printf("Enter x and n value:");scanf("%f,%d",&x,&n);result = p(x,n);printf("p(x) value :%.3f\n",result);}float p(float x,int n){float y = 0.0;if(n == 0){y = 0;}else if(n == 1){y = x;}else{y = ((2*n-1)*x-p(x,n-1)-(n-1)*p(x,n-2))/n;}return y;}#endif#if 0//8.14#include<stdio.h>#include<math.h>int r = 0,l = 0;void main(){float* EStudent_aver(float scores[10][5]);float* EClass_aver(float scores[10][5]);float Maxscore(float scores[10][5]);float variance(float scores[10][5]);float scores[10][5] = {{76,43,46,73,46},{34,67,89,32,47},{31,68,73,16,87},{31,67,31,37,63},{16 ,37,61,67,86},{31,34,60,49,29},{89,89,87,87,98},{97,34,89,42,89},{45,67,34,18,64},{ 32,16,87,42,15}};float *Student_aver,*Class_aver,Student_max = 0.0,aver_variance = 0.0;int i = 0,j = 0,k = 0;/* char Student_name[] = {"Zhanghua Xiaoming Ligang Xiaotao Zhangsan Xiaoqiang CBC Baixu Gongcheng BOBO "};char score_name[] = {"Chinese Math English Chemitry WuLi"};printf("\t");for(i = 0;i < strlen(score_name);i++){printf("%c",score_name[i]);}puts("");for(i = 0;i < strlen(Student_name);i++){printf("%c",Student_name[i]);if(Student_name[i] == 32){for(j = 0;j < 5;j++){printf(" %.0f\t",scores[k][j]);}k++;puts("");}}*//* printf("\n");for(i = 0; i < 10;i++){for(j = 0;j < 5;j++){printf(" %.0f\t",scores[i][j]);}puts("");}*/// float scores[10][5];printf("NO. course1 course2 course3 course4 course5\n");for(i = 0;i < 10;i++){printf("No.%2d\t",i+1);for(j = 0;j < 5;j++){printf("%.2f\t ",scores[i][j]);}puts("");}Student_aver = EStudent_aver(scores);Class_aver = EClass_aver(scores);Student_max = Maxscore(scores);aver_variance = variance(scores);printf("Student_aver:\n");for(i = 0;i < 10;i++){printf("%.2f ",Student_aver[i]);}printf("\nClass_aver:\n");for(i = 0 ;i < 5;i++){printf("%.2f ",Class_aver[i]);}printf("\n");printf("The Max Score:\n %.2f Name: No.%d , Course: course%d\n",Student_max,r,l);printf("Student average Variance: \n %.2f\n",aver_variance);}float * EStudent_aver(float scores[10][5]){static float aver[10],sum = 0.0;int i = 0,j = 0;for(i = 0;i < 10;i++){for(j = 0; j < 5; j++){sum += scores[i][j];}aver[i] = sum/5;sum = 0;}return aver;}float* EClass_aver(float scores[10][5]) {static float aver_1[5],sum = 0.0;int i = 0,j = 0;for(j = 0;j<5;j++){for(i = 0;i<10;i++){sum +=scores[i][j];}aver_1[j] = sum/10;sum = 0;}return aver_1;}float Maxscore(float scores[10][5]) {int i = 0,j = 0;float max = scores[0][0];for(i = 0;i < 10;i++){for(j = 0;j < 5;j++){if(max < scores[i][j]){max = scores[i][j];r = i + 1;l = j + 1;}}}return max;}float variance(float scores[10][5]){float* EStudent_aver(float scores[10][5]);float s = 0.0;float sum_1 = 0.0,sum_2 = 0.0;float number_1 = 0.0,number_2 = 0.0;float* student_aver;int i = 0,j = 0;student_aver = EStudent_aver(scores);for(i = 0;i<10;i++){sum_1 += student_aver[i]*student_aver[i];sum_2 += student_aver[i];}number_1 = sum_1/10;number_2 = (sum_2/10)*(sum_2/10);s = number_1 - number_2;return s;}#endif#if 0 //测试static#include<stdio.h>#include<math.h>static j;void f1(){static i = 0;i++;}void f2(){j = 0;j++;}void main(){int k = 0;for(k = 0;k < 10;k++){f1();f2();}}#endif#if 0//8.16#include<stdio.h>#include<math.h>void main(){void Change(int n);int m = 0;printf("Enter ox number:");scanf("%x",&m);// printf("%d\n",m);Change(m);}void Change(int n){//int m;printf("十进制是: %d\n",n); }#endif#if 0//8.17#include<stdio.h>#include<math.h>void main(){void Function(int n);int m;printf("Input a integer:");scanf("%d",&m);Function(m);}void Function(int n){int i;/* if(n!=0){ch[i] = n%10;temp = n/10;i++;Function(temp);}else{ch[i] = 0;}return ch;*/i = n/10;if(i != 0){Function(i);}putchar(n%10+'0');putchar(32);}#endif#if 0 //今天是今年的多少天#include<stdio.h>#include<math.h>void main(){int i = 1,d = 0,sum = 0;int year,month,day;printf("Enter year and month and day(2012/08/19):");scanf("%d/%d/%d",&year,&month,&day);sum = day;for(;i<month;i++){switch(i){case 1:case 3:case 5:case 7:case 8:case 10:case 12: d = 31; break;case 2:if(year%400 == 0 || year%4 == 0 && year%100!=0){d = 29;}else{d = 28;}break;case 4:case 6:case 9:case 11: d = 30;break;}sum += d;}printf("The %d of The year dates!\n",sum); }#endif#if 0 //8.15#include<stdio.h>#define N 10void main(){void Enter_massage(char staff_name[N][10],int staff_number[N]);void Sort(char staff_name[N][10],int staff_number[N]);int middle_search(int staff_number[N],int number);int number,temp = 0;char staff_name[N][10];int staff_number[N];Enter_massage(staff_name,staff_number);//输入信息Sort(staff_name,staff_number);printf("Enter search staff_number:");scanf("%d",&number);temp = middle_search(staff_number,number);printf("The staff number is : %d\n",staff_number[temp]);printf("The staff name is : %s\n",staff_name[temp]);}void Enter_massage(char staff_name[N][10],int staff_number[N]) {int i;for(i = 0;i < N;i++){printf("Enter Staff number No.:");scanf("%d",&staff_number[i]);fflush(stdin);printf("Input staff name:");gets(staff_name[i]);}}void Sort(char staff_name[N][10],int staff_number[N]) {int i,j;int temp1;char temp[N][10];for(i = 0;i < N - 1; i++){for(j = 0;j < N - 1 - i; j++){if(staff_number[j]>staff_number[j+1]){temp1 = staff_number[j];strcpy(temp[j],staff_name[j]);staff_number[j] = staff_number[j+1];strcpy(staff_name[j],staff_name[j+1]);staff_number[j+1] = temp1;strcpy(staff_name[j+1],temp[j]);}}/*if(staff_number[i]<staff_number[i+1]){temp1 = staff_number[i];staff_number[i] = staff_number[i+1];staff_number[i+1] = temp1;}*/}for(i = 0;i < N;i++){printf("staff number is : %d\n",staff_number[i]);printf("staff name is %s\n",staff_name[i]);}}int middle_search(int staff_number[N],int number) //折半查找法!{int min = 0,high = 0,mid = 0;int i = 0;min = 0;high = N - 1;while(min <= high){mid = (min+high)/2;if(staff_number[mid] > number){high = mid - 1;}else if(staff_number[mid] < number){min = mid + 1;}else{return mid;}}}#endif/*fasdfa the world helloint flag=0;flag=1;//letterflag=0;//space*/#if 0 //有问题输出的是不对的!为什么指针值temp+1的值不是指向的name[1]这一行的首地址而是++后指向的是name[0]下一列的地址呢?#include<stdio.h>void main(){char name[5][10];char temp[5][10];int i = 0;// temp = &name[0];for(i = 0;i < 5;i++){gets(name[i]);strcpy(temp[i],name[i]);}for(i = 0;i < 5;i++){//puts(name[i]);puts(temp[i]);}}#endif#if 0 //看不懂的程序8.15 #define N 10find(a,b)int a[],b[];{int i,j,s,t,c[N][2];for(i=0;i<N;i++){c[i][1]=a[i];c[i][1]=i;} for(i=0;i<N;i++)for(j=0;j<N-i-1;j++)if(c[i][0]>c[i+1][0]){t=c[i][0];c[i][0]=c[i+1][0];c[i+1][0]=t;s=c[i][1];c[i][1]=c[i+1][1];c[i+1][1]=s;}for(i=0;i<N;i++)b[i]=c[i][1];return;}lookfor(h,k)int h[],k;{int i,j;for(i=0;i<N;i++)if(h[i]-k==0) j=i;return j;}main(){int number[N],x[N],i,j,u,p;char name[N][20];for(i=0;i<N;i++){gets(name[i]);scanf("%d",&number[i]);} scanf("%d",&p);find(number,x);u=lookfor(number,p);for(i=0;i<N;i++){printf("%d",number[i]);puts(name[x[i]]);}puts(name[x[u]]);}#endif#if 1 //16进制转换成10进制#include<stdio.h>#include<math.h>#define N 10int flag = 1;void main(){extern int sum;int convert(char str[],int n);char str[N];int s = 0,n = 0;puts("Enter 16 OX number:");gets(str);n = strlen(str);s = convert(str,n);if(1 == flag){printf("10 d number is : %d\n",s);}else{printf("The number isn't OX \n");}}int convert(char str[],int n){int i,j = 0;int sum = 0;for(i = n - 1;i > -1;i--,j++){if(str[i] > 47 && str[i] < 58){sum = sum + (str[i] - 48) * (int)pow(16,j);}else if(str[i] > 64 && str[i] < 71){sum = sum + (str[i] - 55)* (int)pow(16,j);}else if(str[i] > 96 && str[i] < 103){sum = sum + (str[i] - 87) * (int)pow(16,j);}else{flag = 0;}}return sum;}#endif#if 0#include<stdio.h>#include<math.h>void main(){printf("%d\n",(int)pow(2,0)); }#endif。

c语言程序设计试卷及参考答案【经典题目】

c语言程序设计试卷及参考答案【经典题目】
10、为了避免嵌套的if-else语句的二义性,C语言规定else总是与( )组成配对关系。
A、缩排位置相同的if
B、在其之前未配对的if
C、在其之前未配对的最近的if
D、同一行上的if
11、程序段:char *s=”ABCD”, *p; for( p=s; *p ; p++) printf("%s\n", p);的输出是______。
13、C语言源程序的基本单位是( )
A、程序行 B、语句 C、函数 D、字符
14、char s[15]=”hello”;char *p=s; p++;printf(“%c”,*p);输出的结果为( )
A、h B、e C、lD、o
15、以下是用来获取一个字符串的语句为:( )
A、printf(“%s”,s); B、scanf(“%c”,c); C、gets(s); D、puts(s);
3、在编程语言中,标识符就是程序员自己规定的具有特定含义的词,比如变量名、常量名、函数名等。
4、static表示静态的意思,当static用到变量名的前面,表示该变量是静态变量,静态变量的值会一直存在,直到整个程序运行结束。当static用到函数名前面表示静态函数。
四、填空题(本大题15分,每空1.5分)
13、scanf()是用来获取从键盘输入数据的函数( )
14、函数必须有返回值。( )
15、数组中的每个元素的类型必须一样。( )
三、名词解释(每小题5分,共20分)
1、函数
2、递归
3、标识符
4、static
四、填空题(每空1.5分,共15分)
1、结构化设计中的三种基本结构是_________、__________、__________。

专升本C语言历年考试题及答案8

专升本C语言历年考试题及答案8

专升本C 语言历年考试题及答案江西财经大学2005年专升本选拔考试《C 语言程序设计》试卷(考试时间120分钟,总分100分)一、用C语言描述下列命题(共16分,每小题2分)1、a 、b 和c 均为整型变量,a 和b 中有一个大于c 。

2、数学公式:aac b 242-+-b 的C语言表达式(注:sqrt( )为开方函数)。

3、写出100内的自然数x ,能被3或7整除的表达式。

4、写出判断字符变量ch 是阿拉伯数字字符的表达式。

5、写出满足x<60或90≤x ≤100的C 语言表达式。

6、写出平面上的点(x,y)落在单位圆内的表达式。

7、数组p[10]的各元素用于保存指向char 型的指针,写出该数组的定义。

8、有名为max 的函数,其功能是对两个int 型参数x 、y 进行计算,返回其中的较大者,写出该函数的说明部分。

二、根据要求画出流程图或N-S图(共10分,每小题5分)1、用流程图或N-S 图表示以下算法。

输入x 的值,按下列函数计算y 的值,并输出y 的值。

00101<=>⎪⎩⎪⎨⎧-=x x x y 当当当 2、画出打印以下图案的算法流程图或N-S 图。

&& && & && & & &三、程序阅读题(共20分,每小题4分)1、# include <stdio.h>void main( ) {int i,sum=0;for(i=1;i<=30;i++)if(i%3!=0) continue;else sum=sum+i;printf(“sum=%d\n”,sum);}请叙述上面程序的功能,并写出程序的运行结果。

2、void main( ) {int a,b,x=1,y=1;scanf("%d%d",&a,&b);if (a>0) x=x+y;if (a<b) x=2*y;else if (a==b) y=5;else y=x+y;printf("x=%d,y=%d\n",x,y);}假设输入为: 2 -3<CR>, 则程序运行后的输出结果为: 3、void main() {int a[3][3]={2,4,6,8,10,12,14,16,18};int sum=0, i, j;for ( i=0; i<3; i++)for ( j=0; j<3; j++ )if (i==j) sum+=a[i][j];printf(“sum=%d\n”,sum) ;}请叙述上面程序的功能,并写出程序的运行结果。

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

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

c语言及程序设计试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. &&答案:C3. 在C语言中,哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B4. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable2C. variable_2D. variable$2答案:C5. 在C语言中,以下哪个选项是正确的文件打开模式?A. "r"B. "w"C. "a"D. "r+"答案:D6. C语言中,以下哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C7. 在C语言中,以下哪个选项表示“不等于”?A. ==B. !=C. =D. ==答案:B8. C语言中,哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A9. 在C语言中,以下哪个选项是正确的注释方式?A. // This is a single line commentB. /* This is a single line comment */C. //* This is a single line comment */D. /* This is a multi-line comment */答案:A10. C语言中,以下哪个关键字用于定义一个指针?A. ptrB. refC. *D. ^答案:C二、填空题(每题3分,共15分)1. 在C语言中,定义一个整型变量的正确语法是:int ________;答案:变量名2. 要将一个字符变量赋值为'A',正确的赋值语句是:char ch =________;答案:'A'3. 在C语言中,使用 ________ 函数可以输出格式化的字符串。

中国石油大学《C语言程序的设计》期末复习试题与答案

中国石油大学《C语言程序的设计》期末复习试题与答案

《C语言程序设计》期末复习题一、选择题1.能将高级语言编写的源程序转换成目标程序的是()A.程序 B. 解释程序 C. 编译程序 D.编辑程序2.设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是()。

A. 10<a<15B. a==11||a==12||a==13||a==14C. a>10&&a<15D.!(a<=10)&&!(a>=15)3.当调用函数时,实参是一个数组名,则向函数传送的是( )。

A. 数组的长度B. 数组的首地址C. 数组每一个元素的地址D. 数组每个元素中的值4.执行下面的程序段后,k的值是()int k=1,n=325;do { k*=n%10;n/=10;}while(n);A. 3B. 30C. 523D. 3255.若有以下数组说明,则i=6;a[a[i]]元素数值是()。

int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};A.3B.8C.6D.56.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是()A. for(i=1,p=1;i<=5;i++) p*=i;B. for(i=1;i<=5;i++){ p=1; p*=i;}C. i=1;p=1;while(i<=5){p*=i; i++;}D. i=1;p=1;do{p*=i; i++; }while(i<=5);7.若有:int a[][3]={{1,2,3},{4,5},{6,7},{8}}; 则数组a的第一维的大小为: ( ) A. 12 B. 3 C. 4 D.无确定值8.设有如下程序段,则执行p=s;语句后,以下叙述正确的是( )。

char s[20]= “Bejing”,*p;p=s;A.可以用*p表示s[0]B.s数组中元素的个数和p所指字符串长度相等C.s和p都是指针变量D.数组s中的容和指针变量p中的容相等9.以下正确的函数定义是( )。

C语言 习题八参考答案


void abc()
{... ...}
则函数定义中 void 的含义是( )。
A)执行 abc 后,函数没有返回值
B)执行函数 abc 后,函数不再返回
C)执行函数 abc 后,可以返回任意类型 D)以上三个答案全是错误的
5、在以下对 C 语言的描述中,正确的是( )。
A)在 C 语言中调用函数时,只能将实参数的值传递给形参,形参的值不能传递给实参
习题八
一、单项选择题
1、C 语言程序由函数组成。它的( )。
A)主函数必须在其它函数之前,函数内可以嵌套定义函数
B)主函数可以在其它函数之后,函数内不可以嵌套定义函数
C)主函数必须在其它函数之前,函数内不可以嵌套定义函数
D)主函数必须在其它函数之后,函数内可以嵌套定义函数
2、一个 C 语言程序的基本组成单位是( )。
C)在 C 语言中,外部变量的隐含类别是自动存储类别
D)在 C 语言中,函数形参的存储类型是自动(auto)类型的变量
7、说明语句“static int i=10;”中“i=10”的含义是( )。
A)只说明了一个静态变量
B)与“auto i=10;”在功能上等价
C)将变量 i 初始化为 10
D)将变量 i 赋值为 10
B)C 语言函数既可以嵌套定义又可以递归调用
C)函数必须由返回值,否则不能使用函数
D)C 语言程序中有定义关系的所有函数都必须放在同一源文件中
6、以下叙述中错误的是( )。
A)在 C 语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B)在 C 语言中,在定义函数时,实参和对应的形参在类型上只需赋值兼容
if ( count<n ) pa[count++] = temp%10;

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

C语言复习资料5元必须清楚的:1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。

3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。

byte 是指字节, 一个字节= 八个位.5)一定要记住二进制如何划成十进制。

概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。

C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。

2、每个C语言程序中main函数是有且只有一个。

3、在函数中不可以再定义函数。

4、算法的是一定要有输出的,他可以没有输入。

5、break可用于循环结构和switch语句。

6、逗号运算符的级别最低。

第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。

有其它元素就错了。

并且第一个必须为字母或则是下划线。

第一个为数字就错了。

关键字不可以作为用户标识符号。

main define scanf printf 都不是关键字。

迷惑你的地方If是可以做为用户标识符。

因为If中的第一个字母大写了,所以不是关键字。

2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。

考试口诀:e前e后必有数,e后必为整数。

.3)字符数据的合法形式::'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。

'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。

4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。

碰到这种情况,不要去管,一样做题。

掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。

(完整版)C语言程序设计试卷及参考答案

《C语言程序设计》期末考试模拟试卷及参考答案(B)2012.6.5整理一、选择题(每题2分,共30分)1、# include 〈stdio.h〉的结果是______void main ( ){ int a[3][3]={1,2,3,4,5,6,7,8,9};int s=0,i;for (i=0;i〈3;i++)s+=(*(a+i))[i];printf("%d",s);}A.9 B。

12 C.14 D。

15参考答案—D2、设有说明语句:char a= ’\123abc';则变量a __________A. 包含7个字符B.包含6个字符 C。

包含5个字符 D。

包含4个字符参考答案-D 3、有以下程序段int k=0while(k=1)k++;while 循环执行的次数是_____A。

无限次B。

有语法错,不能执行 C。

一次也不执行D。

执行1次参考答案—A4、在C语言中,_____。

A。

函数定义可以嵌套,但函数调用不能嵌套 B。

函数定义不可以嵌套,但函数调用可以嵌套C.函数定义和调用均不能嵌套 D.函数定义和调用均可以嵌套参考答案—B 5、以下叙述正确的是________A)do—while语句构成的循环不能用其它语句构成的循环代替.B)do-while语句构成的循环只能用break语句退出。

C)用do—while语句构成的循环,在while后的表达式为非零时结束循环.D)用do—while语句构成的循环,在while后的表达式为零时结束循环。

参考答案—D 6、以下关于函数叙述中,正确的是。

A。

在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值B.在函数体中至少必须有一个return 语句C.在函数体中可以定义另一个函数D。

在函数体中可以调用函数自身参考答案—D 7、以下数组声明语句中正确的是。

A。

int a,a[n]; B。

int a[]; C. int a[2][3]={{1},{2},{3}}; D.int a[][3]={{1},{2},{3}};参考答案—C8、以下不能正确进行字符串赋初值的语句是________A。

(word完整版)C语言程序设计课后习题1-8参考答案

C语言程序设计课后习题1—8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。

运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。

数据运算包括算术运算和逻辑运算。

控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的.存储器是计算机中具有记忆能力的部件,用来存放程序和数据.输入设备是用来输入程序和数据的部件。

输出设备正好与输入设备相反,是用来输出结果的部件。

2、简述计算机的工作原理。

答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。

整个过程由控制器进行控制。

3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。

系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。

这类软件一般与具体应用无关,是在系统一级上提供的服务。

系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。

另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。

在操作系统的基础上运行。

4、什么叫软件?说明软件与硬件之间的相互关系。

答:软件是指计算机程序及有关程序的技术文档资料。

两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。

在不太严格的情况下,认为程序就是软件。

硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作.在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。

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