c语言程序设计自检自测题及答案 (2)

合集下载

《C语言程序设计》自检自测题及答案

《C语言程序设计》自检自测题及答案

《C++语言程序设计》自检自测题(三)及答案一、给出下列程序运行后的输出结果1.#include<iostream.h>void main(){int s1=0,s2=0;for(int i=0;i<10;i++)if(i%2)s1+=i;else s2+=i;cout<<s1<<’’<<s2<<endl;}2.#include<iostream.h>void main(){int a[8]={8,19,26,15,6,24,27,18};int i2=0,i3=0;for(int i=0;i<8;i++)if(a[i]%2==0)i2++;else if(a[i]%3==0)i3++;cout<<i2<<’’<<i3<<endl;}3.#include<iostream.h>void main(){int a[3][4]={{1,2,7,8},{5,6,11,12},{9,20,3,4}};int m=a[0][0];int ii=0,jj=0;for(int i=0;i<3;i++)for(int j=0;j<4;j++)if(a[i][j]>m){m=a[i][j];ii=i;jj=j;}cout<<ii<<’’<<jj<<’’<<a[ii][jj]<<endl;}4.#include<iostream.h>void main(){int a=10,b=15;cout<<a<<’’<<b<<endl;{a*=3;int b=a+20;cout<<a<<’’<<b<<endl;}cout<<a<<’’<<b<<endl;}5.#include<iomanip.h>void main(){int x=20,y=40,*p;p=&x;cout<<*p<<’’;*p=x+10;p=&y;cout<<*p<<endl;*p=y+20;cout<<x<<’’<<y<<endl;}6.#include<iostream.h>void SB(char ch){switch(ch){case ’A’:case’a’:cout<<”well!”;break;case ’B’:case’b’:cout<<”good!”;break;case ’C’:case’c’:cout<<”pass!”;break;default:cout<<”bad!”;break;}cout<<endl;}void main(){char a[6]=”Abcaf”;for(int i=0;a[i];i++)SB(a[i]);}7.#include<iostream.h>void main(){int a[8]={36,25,48,14,55,40,72,40}; int b1,b2;b1=b2=a[0];for(int i=1;i<8;i++)if(a[i]>b1){if(b1>b2)b2=b1;b1=a[i];}cout<<b1<<’’<<b2<<endl;}8.#include<iomanip.h>void main(){int a[8]={3,5,7,9,11,13,15,17}; int *p=1;for(int i=0;i<8;i++){cout<<setw(5)<<*p++;if((i+1)%3==0)cout<<endl;}}9.#include<iomanip.h>void LG(int* & a,int& m){a=new int [m];int *p=a;for(int i=0;i<m;i++)*p++=i*i;}void main(){int *b,n=5;LG(b,n);for(int i=0;i<n;i++)cout<<b[n-i-1]<<’’;cout<<endl;delete[]b;}10.#include<iostream.h>#include<string.h>struct Worker{char name[5];//姓名int age; //年龄float pay; //工资};void main(){char *t=”WeiRong”;int d=45;float f=1235;strcpy(,t);x.age=d;x.pay=f;cout<<<<’’<<x.age<<’’<<x.pay<<endl; }11.#include<iostream.h>void main(){int s=0;for(int i=1;i<=5;i++)s+=i*i;cout<<”s=”<<s<<endl;}12.#include<iostream.h>void main(){int s=0;for(int i=1;;i++){if(s>50)break;if(i%2==0)s+=i;}cout<<”i,s=”<<i<<”,”<<s<<endl;}13.#include<iomanip.h>int LB(int *a,int n){int s=1;for(int i=0;i<n;i++)s*=*a++;return s;}void main(){int a[]={1,2,3,4,5,6,7,8};cout<<LB(a,5)<<’’<<LB(&a[3],3)<<’’;cout<<LB(a+2,4)<<endl;}14.#include<iostream.h>char name[15];//姓名int age; //年龄float pay; //工资};void main(){Worker x{“wangfong”,43,640};Worker y,*p;y=x;p=&x;cout<<<<’’<<y.age<<’’<<y.pay<<endl;cout<<p->name<<’’<<p->age*2<<’’<<p->pay+100<<endl; }二、写出下列每个函数的功能1.#include<iostream.h>int S(int a,int b){if(a>b)return 1;else if(a==b)return 0;else return -1;}2.#include<math.h>bool SG(int x){ //x为大于等于2的整数int a=int(sqrt(x));//取x的平方根int i=2;while(i<=a){if(x%i==0)break;i++;}if(i<=a)return 0;else return 1;}3.// struct Worker{// char name[15];//姓名// int age; //年龄// float pay; //工资};void Q(Worker a[],int n){for(int i=0;i<n;i++)cin>>a[i].name>>a[i].age>>a[i].pay;}4.#include<iomanip.h>#include<fstream.h>void JD(char *fname)//可把以fname所指字符串作为文件标识符的文件称为fname文件 //假定该文件保存着一批整数{ifstream fin(fname,ios::in|ios::nocreate\ios::binary)int x,s=0,n=0;while(fin.read((char*)&x,sizeof(x))){s+=x;n++;}cout<<n<<’’<<s<<’’<<float(s)/n<<endl;fin.close();}5.float FI(int n){//n为大于等于1的整数float x,y=0;do{cin>>x;n--;y+=x*x;}while(n>0);return y;}6.#include<iostream.h>void WA(int a[],int n){for(int i=0;i<n-1;i++){int k=i;for(int j=i+1;j<n;j++)if(a[j]<a[k])k=j;int x=a[i];a[i]=a[k];a[k]=x;}}7.#include<iostream.h>void LI(int n){int *a=new int[n];for(int i=0;i<n;i++)cin>>a[i];for(i=n-1;i>=0;i--)cout<<*(a+i)<<’’;cout<<’\n’;delete []a;}8.#include<iomanip.h>#include<fstream.h>#include<string.h>void JA(char *fname)//可把以fname所指字符串作为文件标识符的文件称为fname文件{ofstream fout(fname);char a[20];cin>>a;while(strcmp(a,”end”)!=0){fout<<a<<endl;cin>>a;}fout.close();}9.int WC(int a[],int n,int k){int c=0;for(int i=0;i<n;i++)if(a[i]>=k)c++;return c;}10.#include<iostream.h>int *LJ(int a[],int n){int k=0;for(int i=1;i<n;i++)if(a[i]>a[k])k=i;return &a[k];}11.//struct DNode{// double data; //值域// DNode *next; //指针域//};void QB(DNode* & f,int n){if(n==0){f=NULL;return;}f=new DNode;cin>>f->data;DNode *p=f;while(--n){p=p->next=new DNode;cin>>p->data;}p->next=NULL;}12.#include<iostream.h>#include<fstream.h>#include<string.h>int JB(char *fname,char *key)//可把以fname所指字符串作为文件标识符的文件称为fname文件,//假定该文件中保存着一批字符串,每个字符串的长度均小于20。

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

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

《C语言程序设计》试题与答案C语言程序设计试题与答案1. 选择题1) 下列哪个选项是正确的C语言注释的格式?A. /* 注释 */B. / 注释 /C. // 注释D. !注释!答案:C2) 在C语言中,下列哪个选项定义了一个整型变量?A. intB. doubleC. charD. float答案:A3) C语言中,下列哪个选项可以用来声明一个常量?A. constB. staticC. constexprD. volatile答案:A2. 填空题1) C语言中,用来输出字符串的函数是__。

答案:printf2) C语言中,用于从用户输入读取字符的函数是__。

答案:getchar3) C语言中,用于从用户输入读取整数的函数是__。

答案:scanf3. 编程题题目:编写一个C程序,从1加到100并输出结果。

```c#include <stdio.h>int main() {int sum = 0;int i;for (i = 1; i <= 100; i++) {sum += i;}printf("1加到100的结果为:%d", sum);return 0;}```4. 简答题1) C语言中,什么是指针?答:指针是一个变量,它存储了其他变量的内存地址。

2) C语言中,什么是递归函数?答:递归函数是指在函数体内调用自己的函数。

通过递归,函数可以重复执行相同的操作,直到满足终止条件。

3) C语言中,什么是结构体?答:结构体是一种用户自定义的数据类型,它可以将多个不同的数据类型组合在一起,形成一个新的数据类型。

5. 代码分析题题目:请分析以下C语言代码段,并解释其输出结果。

```c#include <stdio.h>void changeValue(int x) {x = 20;}int main() {int x = 10;changeValue(x);printf("x的值为:%d", x);return 0;}```答:代码输出结果为"X的值为:10"。

2.6.3同步自测C语言程序设计实验与习题指导习题答案

2.6.3同步自测C语言程序设计实验与习题指导习题答案

2.6.3同步自测C语言程序设计实验与习题指导习题答案2.6.3 同步自测一、选择题1.在C程序的函数调用时,主调函数中的实参和被调函数中的形参(B)。

(A)个数、次序必须相同,但数据类型可以不考虑(B)个数、次序和对应参数的数据类型都应该相同(C)个数、次序和数据类型均可以不相同(D)对应参数数据类型应相同,但个数和次序可以不考虑2.以下程序的输出结果是(C)。

int x=3,y=4;void main( ){ int x,y=5;x=y++;printf("%d",x);}表达式(A)3 (B)4 (C)5 (D)63.在C语言中,函数默认的存储类型为(A)。

(A)auto (B)register (C)static (D)extern4.执行下面的程序后,变量a的值是(B)。

#include#define SQR(X) X*Xvoid main(){ int a=10,k=2,m=3;a/=SQR(m)/SQR(k);printf("%d\n",a);}(A)10 (B)1 (C)5 (D)05.一个C程序的执行是从(A)。

(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束6.以下有关宏替换的叙述不正确的是(D)。

(A)宏替换不占用运行时间(B)宏名无类型(C)宏替换只是字符串替换;(D)宏替换是在运行时进行的7.设有以下宏定义:#define N 3#define Y(n) (N+1*n)则执行语句:z=2*(N*Y(5+1)); 后,z的值为(A)。

(A)30 (B)72 (C)48 (D)548.在C语言中,以下叙述错误的是(C)。

(A)函数被调用时,系统才为形参分配内存(B)实参和对应形参的数据类型必须一致(C)实参可以是变量、常量或表达式(D)形参可以是变量、常量或表达式9. 一个数据类型为void的函数中可以没有return语句,那么函数的被调用时(A)。

C语言自测题

C语言自测题

选择题1 C语言中使用的字符常量,其起止标记符是(单引号)。

2语言中使用的字符串常量,其起止标记符是(双引号).3在C语言中,一条简单语句的结束符是(分号)。

4在C语言中,每条复合语句的开始标记字符为({).5不符合C语言规定的复合语句是({y=10})。

6 C语言中的选择类语句有两条,它们是(if和switch )。

7在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(main)。

8 C语言程序中的基本功能模块为(函数)。

9 一个函数定义所包含的两个部分是(函数头和函数)。

10 一个程序文件开始使用的每条预处理命令,其首字符必须是(#)。

11在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对(尖括号).12在C语言程序中,单行或行尾注释使用的标记符为(//)。

13在C语言程序中,多行注释使用的结束标记符为(*/).14用于输出表达式值的标准输出函数是(printf())。

15在printf()函数调用的格式字符串中,每个格式符的先导字符为(%)。

16在printf()函数调用的格式字符串中,若使用格式符为“%d",则对应输出的数据类型为(int)。

17在printf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输出的数据类型为(float)。

18在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为(5 )。

19程序运行中需要从键盘上输入多于一个数据时,若不特别规定分隔符,则输入的各数据之间所使用的分隔符为(逗号或回车)。

20用于从键盘上为变量输入值的标准输入函数是(scanf())。

21在scanf()函数调用的格式字符串中,每个格式符的先导字符为(%)。

22在scanf()函数调用的格式字符串中,若使用格式字符串为“%d,%d",则规定输入的两个数据之间的分隔符为(@ ).23C语言源程序文件的扩展名为( c)。

《C语言程序设计》自检自测题及答案

《C语言程序设计》自检自测题及答案

《C++语言程序设计》自检自测题(三)及答案一、给出下列程序运行后的输出结果1.#include<iostream.h>void main(){int s1=0,s2=0;for(int i=0;i<10;i++)if(i%2)s1+=i;else s2+=i;cout<<s1<<’’<<s2<<endl;}2.#include<iostream.h>void main(){int a[8]={8,19,26,15,6,24,27,18};int i2=0,i3=0;for(int i=0;i<8;i++)if(a[i]%2==0)i2++;else if(a[i]%3==0)i3++;cout<<i2<<’’<<i3<<endl;}3.#include<iostream.h>void main(){int a[3][4]={{1,2,7,8},{5,6,11,12},{9,20,3,4}};int m=a[0][0];int ii=0,jj=0;for(int i=0;i<3;i++)for(int j=0;j<4;j++)if(a[i][j]>m){m=a[i][j];ii=i;jj=j;}cout<<ii<<’’<<jj<<’’<<a[ii][jj]<<endl;}4.#include<iostream.h>void main(){int a=10,b=15;cout<<a<<’’<<b<<endl;{a*=3;int b=a+20;cout<<a<<’’<<b<<endl;}cout<<a<<’’<<b<<endl;}5.#include<iomanip.h>void main(){int x=20,y=40,*p;p=&x;cout<<*p<<’’;*p=x+10;p=&y;cout<<*p<<endl;*p=y+20;cout<<x<<’’<<y<<endl;}6.#include<iostream.h>void SB(char ch){switch(ch){case ’A’:case’a’:cout<<”well!”;break;case ’B’:case’b’:cout<<”good!”;break;case ’C’:case’c’:cout<<”pass!”;break;default:cout<<”bad!”;break;}cout<<endl;}void main(){char a[6]=”Abcaf”;for(int i=0;a[i];i++)SB(a[i]);}7.#include<iostream.h>void main(){int a[8]={36,25,48,14,55,40,72,40}; int b1,b2;b1=b2=a[0];for(int i=1;i<8;i++)if(a[i]>b1){if(b1>b2)b2=b1;b1=a[i];}cout<<b1<<’’<<b2<<endl;}8.#include<iomanip.h>void main(){int a[8]={3,5,7,9,11,13,15,17}; int *p=1;for(int i=0;i<8;i++){cout<<setw(5)<<*p++;if((i+1)%3==0)cout<<endl;}}9.#include<iomanip.h>void LG(int* & a,int& m){a=new int [m];int *p=a;for(int i=0;i<m;i++)*p++=i*i;}void main(){int *b,n=5;LG(b,n);for(int i=0;i<n;i++)cout<<b[n-i-1]<<’’;cout<<endl;delete[]b;}10.#include<iostream.h>#include<string.h>struct Worker{char name[5];//姓名int age; //年龄float pay; //工资};void main(){char *t=”WeiRong”;int d=45;float f=1235;strcpy(,t);x.age=d;x.pay=f;cout<<<<’’<<x.age<<’’<<x.pay<<endl; }11.#include<iostream.h>void main(){int s=0;for(int i=1;i<=5;i++)s+=i*i;cout<<”s=”<<s<<endl;}12.#include<iostream.h>void main(){int s=0;for(int i=1;;i++){if(s>50)break;if(i%2==0)s+=i;}cout<<”i,s=”<<i<<”,”<<s<<endl;}13.#include<iomanip.h>int LB(int *a,int n){int s=1;for(int i=0;i<n;i++)s*=*a++;return s;}void main(){int a[]={1,2,3,4,5,6,7,8};cout<<LB(a,5)<<’’<<LB(&a[3],3)<<’’;cout<<LB(a+2,4)<<endl;}14.#include<iostream.h>char name[15];//姓名int age; //年龄float pay; //工资};void main(){Worker x{“wangfong”,43,640};Worker y,*p;y=x;p=&x;cout<<<<’’<<y.age<<’’<<y.pay<<endl;cout<<p->name<<’’<<p->age*2<<’’<<p->pay+100<<endl; }二、写出下列每个函数的功能1.#include<iostream.h>int S(int a,int b){if(a>b)return 1;else if(a==b)return 0;else return -1;}2.#include<math.h>bool SG(int x){ //x为大于等于2的整数int a=int(sqrt(x));//取x的平方根int i=2;while(i<=a){if(x%i==0)break;i++;}if(i<=a)return 0;else return 1;}3.// struct Worker{// char name[15];//姓名// int age; //年龄// float pay; //工资};void Q(Worker a[],int n){for(int i=0;i<n;i++)cin>>a[i].name>>a[i].age>>a[i].pay;}4.#include<iomanip.h>#include<fstream.h>void JD(char *fname)//可把以fname所指字符串作为文件标识符的文件称为fname文件 //假定该文件保存着一批整数{ifstream fin(fname,ios::in|ios::nocreate\ios::binary)int x,s=0,n=0;while(fin.read((char*)&x,sizeof(x))){s+=x;n++;}cout<<n<<’’<<s<<’’<<float(s)/n<<endl;fin.close();}5.float FI(int n){//n为大于等于1的整数float x,y=0;do{cin>>x;n--;y+=x*x;}while(n>0);return y;}6.#include<iostream.h>void WA(int a[],int n){for(int i=0;i<n-1;i++){int k=i;for(int j=i+1;j<n;j++)if(a[j]<a[k])k=j;int x=a[i];a[i]=a[k];a[k]=x;}}7.#include<iostream.h>void LI(int n){int *a=new int[n];for(int i=0;i<n;i++)cin>>a[i];for(i=n-1;i>=0;i--)cout<<*(a+i)<<’’;cout<<’\n’;delete []a;}8.#include<iomanip.h>#include<fstream.h>#include<string.h>void JA(char *fname)//可把以fname所指字符串作为文件标识符的文件称为fname文件{ofstream fout(fname);char a[20];cin>>a;while(strcmp(a,”end”)!=0){fout<<a<<endl;cin>>a;}fout.close();}9.int WC(int a[],int n,int k){int c=0;for(int i=0;i<n;i++)if(a[i]>=k)c++;return c;}10.#include<iostream.h>int *LJ(int a[],int n){int k=0;for(int i=1;i<n;i++)if(a[i]>a[k])k=i;return &a[k];}11.//struct DNode{// double data; //值域// DNode *next; //指针域//};void QB(DNode* & f,int n){if(n==0){f=NULL;return;}f=new DNode;cin>>f->data;DNode *p=f;while(--n){p=p->next=new DNode;cin>>p->data;}p->next=NULL;}12.#include<iostream.h>#include<fstream.h>#include<string.h>int JB(char *fname,char *key)//可把以fname所指字符串作为文件标识符的文件称为fname文件,//假定该文件中保存着一批字符串,每个字符串的长度均小于20。

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

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

C语言程序设计考试试题(附答案) C语言程序设计考试试题(附答案)一、选择题(共30题,每题2分,共60分)1. 下列哪个是C语言关键字?A. printB. variableC. whileD. calculate答案:C2. 在C语言中,下列哪个是合法的变量名?A. 1_helloB. _worldC. v-ariableD. continue答案:B3. 下列哪个是正确的C语言注释方式?A. // This is a commentB. # This is a commentC. /* This is a comment */D. <!-- This is a comment -->答案:C4. 下列哪个是正确的C语言函数定义格式?A. void addNumbers()B. addNumbers()C. function addNumbers()D. int addNumbers()答案:D5. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 2;float result = x / y;printf("%f", result);return 0;}```A. 2.5B. 2C. 2.000000D. 5答案:B6. 在C语言中,下列哪个是正确的if语句格式?A. if (x > 4) thenB. if (x > 4) { }C. if x > 4D. if (x > 4)答案:D7. 下列哪个是C语言中的逻辑运算符?A. ++B. &&C. %D. =答案:B8. 在C语言中,下列哪个是正确的for循环格式?A. for (x = 0; x < 5)B. for {x = 0; x < 5; x++}C. for (int x = 0; x < 5; x++)D. for (x = 0; x < 5;)答案:C9. 下列哪个是C语言中的自增运算符?A. ++B. +=C. =D. --答案:A10. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 2;x *= 3 + 4;printf("%d", x);return 0;}```A. 14B. 20C. 21D. 22答案:C11. 在C语言中,下列哪个是正确的switch语句格式?A. switch (x) {case 1;case 2;break;default;break;}B. switch (x) {case 1:case 2:break;default:break;}C. switch (x) case 1:case 2:break;default:break; D. switch (x) { case 1,case 2,break,default,break,}答案:B12. 下列哪个是C语言中的逗号运算符?A. &&B. !C. ,D. |答案:C13. 在C语言中,下列哪个是正确的数组声明?A. array[5]B. [5] arrayC. array[] = [5]D. int array[5]答案:D14. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int i;for (i = 0; i <= 5; i++){printf("%d ", i);if (i == 3)continue;}return 0;}```A. 0 1 2 3 4 5B. 0 1 2 3 4C. 0 1 2 3 4 5 6D. 0 1 2 4 5答案:A15. 下列哪个是C语言中的求余运算符?A. /B. +C. %D. *答案:C16. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 4;int y = 5;if (x > 2 || y < 10){printf("True");}else{printf("False");}return 0;}```A. TrueB. FalseC. x > 2 || y < 10D. 4 5答案:A17. 在C语言中,下列哪个是正确的do-while循环格式?A. do (x < 5)B. do {x < 5} whileC. do {x < 5} while (x++)D. do {x < 5;} while (x < 5)答案:D18. 下列哪个是C语言中的逻辑非运算符?A. !B. &&C. <D. =答案:A19. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int i;for (i = 1; i <= 10; i++){if (i % 2 == 0)continue;printf("%d ", i);}return 0;}```A. 1 2 3 4 5 6 7 8 9 10B. 1 3 5 7 9C. 2 4 6 8 10D. 1 2 4 8答案:B20. 下列哪个是C语言中的减法运算符?B. +C. -D. *答案:C21. 在C语言中,下列哪个是正确的数组初始化方式?A. int array[5] = {1, 2, 3}B. array[5] = {1, 2, 3}C. int array[] = {1, 2, 3}D. int array[5] = {1, 2, 3,}答案:C22. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 7;if (x > 2 && y < 10)printf("True");}else{printf("False");}return 0;}```A. TrueB. FalseC. x > 2 & y < 10D. x > 2 || y < 10答案:A23. 下列哪个是C语言中的除法运算符?A. /B. +C. %答案:A24. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 7;int y = (x > 5) ? 10 : 5;printf("%d", y);return 0;}```A. 7B. 5C. 10D. 15答案:C25. 在C语言中,下列哪个是正确的while循环格式?A. while (x < 5;)B. while {x < 5;}C. while (x < 5)D. while {x < 5}答案:C26. 下列哪个是C语言中的位运算符?A. ||B. &&C. !D. &答案:D27. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 2;int y = 3;if (x = y){printf("Equal");}else{printf("Not equal");}return 0;}```A. EqualB. Not equalC. 2D. 3答案:A28. 在C语言中,下列哪个是正确的goto语句格式?A. goto label;B. goto (label);C. gote labelD. go to label答案:A29. 下列哪个是C语言中的加法运算符?A. /B. +C. %D. *答案:B30. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 2;int result = x % y;printf("%d", result);return 0;}A. 2B. 1C. 3D. 0答案:B二、编程题31. 编写一个C语言程序,在屏幕上输出从1到100的所有偶数。

C语言程序设计试题附答案3篇

C语言程序设计试题附答案3篇C语言程序设计试题附答案11. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'; B float a=b=10.0;C)int a=10,b= D)float a,b=4.下列选项中,不能用作标识符的是( D )A)_1234_ B)_1_2 C) int_2_ D)2_int_5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 ( B )A)称为函数的直接递归调用 B)称为函数的间接递归调用C)称为函数的循环调用 D)C语言中不允许这样的递归调用6.以下叙述中正确的是 ( A )A)局部变量说明为static存储类,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B)A)for(i=1,p=1;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;i0)?? { count++;?? sum+= _a[i]__③___ ;?? }? }printf("sum=%d,count=%d\n",__sum④___,__⑤__count___);}4.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。

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

《C++语言程序设计》自检自测题(三)及答案一、给出下列程序运行后的输出结果1.#include<iostream.h>void main(){int s1=0,s2=0;for(int i=0;i<10;i++)if(i%2)s1+=i;else s2+=i;cout<<s1<<’’<<s2<<endl;}2.#include<iostream.h>void main(){int a[8]={8,19,26,15,6,24,27,18};int i2=0,i3=0;for(int i=0;i<8;i++)if(a[i]%2==0)i2++;else if(a[i]%3==0)i3++;cout<<i2<<’’<<i3<<endl;}3.#include<iostream.h>void main(){int a[3][4]={{1,2,7,8},{5,6,11,12},{9,20,3,4}};int m=a[0][0];int ii=0,jj=0;for(int i=0;i<3;i++)for(int j=0;j<4;j++)if(a[i][j]>m){m=a[i][j];ii=i;jj=j;}cout<<ii<<’’<<jj<<’’<<a[ii][jj]<<endl;}4.#include<iostream.h>void main(){int a=10,b=15;cout<<a<<’’<<b<<endl;{a*=3;int b=a+20;cout<<a<<’’<<b<<endl;}cout<<a<<’’<<b<<endl;}5.#include<iomanip.h>void main(){int x=20,y=40,*p;p=&x;cout<<*p<<’’;*p=x+10;p=&y;cout<<*p<<endl;*p=y+20;cout<<x<<’’<<y<<endl;}6.#include<iostream.h>void SB(char ch){switch(ch){case ’A’:case’a’:cout<<”well!”;break;case ’B’:case’b’:cout<<”good!”;break;case ’C’:case’c’:cout<<”pass!”;break;default:cout<<”bad!”;break;}cout<<endl;}void main(){char a[6]=”Abcaf”;for(int i=0;a[i];i++)SB(a[i]);}7.#include<iostream.h>void main(){int a[8]={36,25,48,14,55,40,72,40}; int b1,b2;b1=b2=a[0];for(int i=1;i<8;i++)if(a[i]>b1){if(b1>b2)b2=b1;b1=a[i];}cout<<b1<<’’<<b2<<endl;}8.#include<iomanip.h>void main(){int a[8]={3,5,7,9,11,13,15,17}; int *p=1;for(int i=0;i<8;i++){cout<<setw(5)<<*p++;if((i+1)%3==0)cout<<endl;}}9.#include<iomanip.h>void LG(int* & a,int& m){a=new int [m];int *p=a;for(int i=0;i<m;i++)*p++=i*i;}void main(){int *b,n=5;LG(b,n);for(int i=0;i<n;i++)cout<<b[n-i-1]<<’’;cout<<endl;delete[]b;}10.#include<iostream.h>#include<string.h>struct Worker{char name[5];//姓名int age; //年龄float pay; //工资};void main(){char *t=”WeiRong”;int d=45;float f=1235;strcpy(,t);x.age=d;x.pay=f;cout<<<<’’<<x.age<<’’<<x.pay<<endl; }11.#include<iostream.h>void main(){int s=0;for(int i=1;i<=5;i++)s+=i*i;cout<<”s=”<<s<<endl;}12.#include<iostream.h>void main(){int s=0;for(int i=1;;i++){if(s>50)break;if(i%2==0)s+=i;}cout<<”i,s=”<<i<<”,”<<s<<endl;}13.#include<iomanip.h>int LB(int *a,int n){int s=1;for(int i=0;i<n;i++)s*=*a++;return s;}void main(){int a[]={1,2,3,4,5,6,7,8};cout<<LB(a,5)<<’’<<LB(&a[3],3)<<’’;cout<<LB(a+2,4)<<endl;}14.#include<iostream.h>char name[15];//姓名int age; //年龄float pay; //工资};void main(){Worker x{“wangfong”,43,640};Worker y,*p;y=x;p=&x;cout<<<<’’<<y.age<<’’<<y.pay<<endl;cout<<p->name<<’’<<p->age*2<<’’<<p->pay+100<<endl; }二、写出下列每个函数的功能1.#include<iostream.h>int S(int a,int b){if(a>b)return 1;else if(a==b)return 0;else return -1;}2.#include<math.h>bool SG(int x){ //x为大于等于2的整数int a=int(sqrt(x));//取x的平方根int i=2;while(i<=a){if(x%i==0)break;i++;}if(i<=a)return 0;else return 1;}3.// struct Worker{// char name[15];//姓名// int age; //年龄// float pay; //工资};void Q(Worker a[],int n){for(int i=0;i<n;i++)cin>>a[i].name>>a[i].age>>a[i].pay;}4.#include<iomanip.h>#include<fstream.h>void JD(char *fname)//可把以fname所指字符串作为文件标识符的文件称为fname文件 //假定该文件保存着一批整数{ifstream fin(fname,ios::in|ios::nocreate\ios::binary)int x,s=0,n=0;while(fin.read((char*)&x,sizeof(x))){s+=x;n++;}cout<<n<<’’<<s<<’’<<float(s)/n<<endl;fin.close();}5.float FI(int n){//n为大于等于1的整数float x,y=0;do{cin>>x;n--;y+=x*x;}while(n>0);return y;}6.#include<iostream.h>void WA(int a[],int n){for(int i=0;i<n-1;i++){int k=i;for(int j=i+1;j<n;j++)if(a[j]<a[k])k=j;int x=a[i];a[i]=a[k];a[k]=x;}}7.#include<iostream.h>void LI(int n){int *a=new int[n];for(int i=0;i<n;i++)cin>>a[i];for(i=n-1;i>=0;i--)cout<<*(a+i)<<’’;cout<<’\n’;delete []a;}8.#include<iomanip.h>#include<fstream.h>#include<string.h>void JA(char *fname)//可把以fname所指字符串作为文件标识符的文件称为fname文件{ofstream fout(fname);char a[20];cin>>a;while(strcmp(a,”end”)!=0){fout<<a<<endl;cin>>a;}fout.close();}9.int WC(int a[],int n,int k){int c=0;for(int i=0;i<n;i++)if(a[i]>=k)c++;return c;}10.#include<iostream.h>int *LJ(int a[],int n){int k=0;for(int i=1;i<n;i++)if(a[i]>a[k])k=i;return &a[k];}11.//struct DNode{// double data; //值域// DNode *next; //指针域//};void QB(DNode* & f,int n){if(n==0){f=NULL;return;}f=new DNode;cin>>f->data;DNode *p=f;while(--n){p=p->next=new DNode;cin>>p->data;}p->next=NULL;}12.#include<iostream.h>#include<fstream.h>#include<string.h>int JB(char *fname,char *key)//可把以fname所指字符串作为文件标识符的文件称为fname文件,//假定该文件中保存着一批字符串,每个字符串的长度均小于20。

相关文档
最新文档