C语言程序设计自测练习
c程序设计考试题
c程序设计考试题C程序设计考试题一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的整型常量表示方式?A. 0x1234LB. 1234.0C. 1234D. 0x12342. 下列哪个是C语言中的合法标识符?A. 2variableB. variable-C. variable2D. variable#3. 以下哪个语句可以正确地交换两个变量的值?A. a = a + b;B. a = a - b;C. a = a / b;D. a = b; b = a;4. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!" "Hello, World!"D. {"Hello, World!"}5. 以下哪个函数可以用于计算数组中元素的总和?A. sum()B. count()C. average()D. find()6. 以下哪个是C语言中的控制语句?A. ifB. whileC. switchD. All of the above7. 在C语言中,以下哪个是正确的函数声明?A. int function(int a, int b);B. int function(a, b);C. int function(int a, b);D. function(int a, int b);8. 以下哪个是C语言中定义结构体的关键字?A. structB. unionC. enumD. typedef9. 在C语言中,以下哪个是正确的指针声明?A. int *pointer;B. pointer int;C. int pointer[];D. int *pointer[10];10. 下列哪个是C语言中正确的数组初始化方式?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[5] = 1, 2, 3, 4, 5;C. int arr[] = {1, 2, 3, 4, 5};D. All of the above二、简答题(每题10分,共20分)1. 解释C语言中的指针和引用的区别。
C语言程序设计自测题
C语言程序设计自测题在计算机科学领域中,C语言是一种广泛使用的编程语言之一。
它是一种高级语言,具有对系统资源的直接访问能力以及强大的功能。
C 语言可以用于开发各种类型的应用程序,从简单的命令行工具到复杂的操作系统。
本文将为您提供一些关于C语言的自测题,帮助您检验自己在C语言程序设计方面的掌握程度。
这些问题将覆盖C语言的各个方面,包括基本语法、数据类型、运算符、条件语句、循环结构以及函数等。
问题一:基本语法1. C语言中的注释有几种类型?请举例说明。
2. 如何在C语言中输出文本?3. 如何声明和初始化一个整数类型的变量?4. 请说明C语言中的标识符命名规则。
问题二:数据类型和运算符1. 在C语言中,int、float和char等是哪种数据类型?2. 如何在C语言中进行算术运算和逻辑运算?3. 请解释C语言中的类型转换。
4. 请说明C语言中的运算符优先级规则。
问题三:条件语句1. 请说明C语言中的if语句和switch语句的用法和区别。
2. 如何在C语言中使用条件运算符(三目运算符)?3. 请解释C语言中的逻辑运算符“&&”、“||”和“!”的作用。
问题四:循环结构1. 请说明C语言中的for循环和while循环的用法和区别。
2. 如何在C语言中使用break和continue语句?3. 请解释C语言中的循环控制变量。
问题五:函数1. 如何在C语言中定义和调用函数?2. 请说明C语言中的形式参数和实际参数的区别。
3. 如何在C语言中使用递归函数?以上题目只是一部分示例,您可以根据自己的需要做进一步的扩展,或者深入研究每个主题。
通过自测题,您可以加深对C语言程序设计的理解,并帮助您查漏补缺。
在解答这些问题时,请确保您的回答准确、清晰,并使用正确的C语言语法。
不妨借助编译器进行实际测试,以确保您的答案和代码是正确的。
C语言是一门强大而灵活的编程语言,掌握它将为您在计算机科学领域中的职业生涯开辟更广阔的发展空间。
计算机c语言程序设计考试题及答案
计算机c语言程序设计考试题及答案一、单项选择题(每题2分,共20分)1. C语言中,以下哪个选项是合法的标识符?A. 123abcB. intC. _myVarD. 2variable答案:C2. 下列哪个选项是C语言中的整型常量?A. 3.14B. 0x1AC. 0.5D. "123"答案:B3. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. "Hello, World\"答案:A4. C语言中,以下哪个选项是正确的二维数组声明?A. int array[3, 4];B. int array[3][4];C. int array[][];D. int array[3] [4];答案:B5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. 以上都是答案:D6. C语言中,以下哪个选项是正确的函数声明?A. int myFunction(int, int);B. int myFunction(int x, int y) {}C. int myFunction(int, int) {}D. int myFunction(x, y) {}答案:A7. 在C语言中,以下哪个选项是正确的结构体声明?A. struct {int a;float b;B. struct myStruct {int a;float b;};C. struct myStruct int a;float b;};D. struct {int a;float b;} myStruct;答案:B8. C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int * ptr;D. int * ptr int;答案:A9. 在C语言中,以下哪个选项是正确的条件语句?A. if x > 0printf("Positive");B. if x > 0 thenprintf("Positive");C. if (x > 0) {printf("Positive");}D. if x > 0 thenprintf("Positive");答案:C10. C语言中,以下哪个选项是正确的循环语句?A. for i = 0; i < 10; i++printf("%d ", i);B. for (int i = 0; i < 10; i++)printf("%d ", i);C. for i = 0 to 10printf("%d ", i);D. for (i = 0; i < 10; i++)printf("%d ", i);答案:B二、填空题(每题2分,共20分)1. 在C语言中,用于定义整型变量的关键字是________。
国家开放大学C语言程序设计章节测试参考答案
国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。
(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。
(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。
(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。
(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。
(√)3.C语言中使用的字符常量,其起止标记符是()。
a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。
a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。
a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。
a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。
a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。
a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。
a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。
a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。
a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。
《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语言程序设计》课程自测1章C语言概述一、判断题1. C语言程序中,任何英语单词均可以作标识符。
()答案为×2. 在C语言的源程序中,注释使用越多,编译之后的可执行程序的执行效率越低。
()答案为×3. C语言是一种面向过程的语言。
()答案为√4. 当主程序执行完毕时,亦即程序执行完毕。
()答案为√5. C程序有且仅有一个main()函数。
()答案为√6. C语言中不区分大小写英文字母。
()答案为×7. 用C语言编写的程序是一种需要经过编译和连接才能运行的程序。
()答案为√8. C语言是一门对标识符大小写敏感的程序设计语言。
()答案为√二、单选题1. 一个C程序的组成部分可以是()。
A)一个主函数和一至若干个其他函数B)一至若干个主函数C)一个主程序和一至若干个其他函数D)一个主程序和一至若干个子程序答案为A2. 以下叙述的是()。
A)在C程序中,main函数必须位于程序的最前面B)C程序的每行中只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错答案为C3. C语言规定,C程序执行的开始处为()。
A)源程序中排列在最前面的函数B)一个指定的系统库函数C)用户指定的一个特定函数D)程序的主函数答案为D4. 一个C程序的执行是从()。
(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束答案为A5. 一个C语言程序是由()组成。
(A)一个函数(B)一个或若干个函数(C)一个过程(D)一个过程或若干个过程答案为B6. 下列说法中错误的是()。
(A)程序的执行总是从主函数开始。
(B)主函数可以调用任何非主函数的其它函数(C)任何非主函数可以调用其它任何非主函数(D)程序可以从任何非主函数开始执行答案为D7. C程序的基本单位是()。
c语言程序设计考试题及答案
c语言程序设计考试题及答案一、选择题(每题2分,共10分)1. 下列选项中,哪个是C语言中的合法变量名?A. 2variableB. variable2C. variable_2D. variable-2答案:C2. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. charD. double答案:A3. 下列哪个选项是正确的C语言注释方式?A. // This is a commentB. /* This is a comment */C. //* This is a commentD. /* This is a comment */答案:B4. 在C语言中,以下哪个语句用于交换两个变量的值?A. a = b;B. b = a;C. a = a + b;D. a = a + b; b = a - b; a = a - b;答案:D5. C语言中,以下哪个函数用于将字符串连接到另一个字符串的末尾?A. strcat()B. strcpy()C. strcmp()D. strlen()答案:A二、填空题(每题3分,共15分)1. 在C语言中,___________关键字用于定义一个函数。
答案:int2. C语言中,___________函数用于输出字符串。
答案:printf3. 在C语言中,___________关键字用于定义一个结构体。
答案:struct4. C语言中,___________函数用于输入一个整数。
答案:scanf5. 在C语言中,___________关键字用于定义一个枚举类型。
答案:enum三、简答题(每题5分,共20分)1. 请简述C语言中数组和指针的关系。
答案:在C语言中,数组名可以作为指向数组首元素的指针使用。
数组的每个元素可以通过指针偏移量来访问。
2. 解释C语言中的递归函数。
答案:递归函数是在其定义中调用自身的函数。
它通常用于解决可以分解为更小的、相似子问题的问题。
c程序设计考试试题
c程序设计考试试题C程序设计考试试题一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable-name22. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double3. 以下哪段代码可以正确地声明一个整型数组?A. int array[10] = {0, 0, ...};B. int array[] = {0, 1, 2, ...};C. int array[10] = {1};D. int array = {1, 2, 3};4. C语言中,以下哪个关键字用于定义函数?A. ifB. whileC. functionD. void5. 在C语言中,以下哪个语句用于结束程序的执行?A. break;B. continue;C. return;D. exit;6. 以下哪个选项是C语言中的正确注释方式?A. /* This is a comment */B. // This is a commentC. /*/ This is a comment */D. //* This is a comment */7. 以下哪个选项是C语言中的逻辑运算符?A. &&B. ||C. <=D. =8. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. string str = "Hello";C. char str = "Hello";D. string str[] = "Hello";9. 以下哪个选项是C语言中的条件语句?A. switchB. caseC. if-elseD. for10. 在C语言中,以下哪个函数用于计算两个数的和?A. pow()B. sqrt()C. sum()D. printf()二、简答题(每题5分,共10分)1. 解释C语言中的指针是什么,并给出一个简单的示例。
c语言分支程序设计测试题目及答案
c语言分支程序设计测试题目及答案1. 单选题:以下哪个关键字用于C语言中的条件语句?A. ifB. elseC. whileD. for答案:A2. 判断题:以下代码段能否正确判断一个整数是否为偶数?```cint num = 10;if (num % 2 == 0)printf("偶数");elseprintf("奇数");```正确错误答案:正确3. 填空题:在C语言中,以下代码段的功能是____。
```cint a = 5;if (a > 0)printf("正数");else if (a == 0)printf("零");elseprintf("负数");```答案:判断变量a的正负4. 简答题:请解释C语言中的三元运算符的用法。
答案:C语言中的三元运算符是 `条件表达式 ? 表达式1 : 表达式2`,其中条件表达式为真时,执行表达式1,否则执行表达式2。
5. 编程题:编写一个C语言程序,判断用户输入的年份是否为闰年。
```c#include <stdio.h>int main() {int year;printf("请输入一个年份:");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) printf("%d是闰年。
\n", year);elseprintf("%d不是闰年。
\n", year);return 0;}```6. 多选题:以下哪些条件可以使得if语句执行其内部代码块?A. 条件表达式为真B. 条件表达式为假C. 条件表达式返回非零值D. 条件表达式返回零值答案:AC7. 改错题:以下代码段中存在错误,请指出并修改。
C语言自测练习
C语言自测练习一.单项选择题1.为了避免嵌套的条件语句if-else的二义性,C语言规定:else与(B)配对。
A.缩进位置相同的if B.其之前最近的if C.其之后最近的if D.同一行上的if 2.已知:int y;执行语句y=5%3;则变量y的结果是(A)。
A.2 B.-2 C.1 D.-13.具有相同类型的指针变量与数组a,不能进行的操作是(C)。
解释A.p=a; B.*p=a[0]; C.p=&a[0]; D.p=&a;4.用于函数返回值的语句是(A)。
A.return B.continue C.break D.printf5.设int m=1,n=2;则m++==n的结果是(A)。
解释A.0 B.1 C.2 D.36.设int a=2,b=2;则++a+b的结果是(D)。
解释A.2 B.3 C.4 D.57.已知:int a,b;用语句scanf(“%d%d”,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是(A)。
解释A., B.空格 C.回车 D.Tab8.凡在函数中未指定存储类别的变量,其隐含的存储类别为(A)。
解释A.auto B.static C.extern D.register9.若对函数类型未加显示说明,则函数的隐含类型是(D)。
A.void B.double C.int D.char10.在int a[5]={1,3,5};语句中,数组元素a[1]的值是(C)解释A.1 B.0 C.3 D.511.已知int a=3,*p=&a;则*p的值是(D)。
解释A.变量a的地址值 B.无意义 C.变量p的地址值 D.312.已知struct { int i; char c; float a; }test;则sizeof(test)的值是(D)解释A.4 B.5 C.6 D.713.C语言中合法的变量名是(C)。
A.2x B.x_1 C.double D.x*214.数学表达式x≤y≤z,C语言中的正确表达式是(D)。
C语言自测50题
1.C程序设计的三种基本结构是:选择结构、循环结构和。
2.一个C语言程序的基本组成单位是。
3.一个C语言程序的执行起点是。
4.C语言标识符的第一个字符必须为下划线或者。
5.在C语言中,整型常量的书写形式包括:八进制、十进制和进制。
6.在C语言中,运算符的操作数必须是整型的是。
7.设int a=9,b=6,c;,执行语句c=a/b+0.8;后c的值是。
8.设int a;float b;char c;long d;double e;,则表达式a/c-b+d-e值的类型是。
9.设int x=7,y=3,则表达式x%y+x/y的值是。
10.设int i;float f=3.14;,执行i=(int)f;后,变量i的值是。
11.设float x=23.65;, 则执行语句printf("%d\n",(int)(x+0.5));后输出结果是。
12.设int j=5;,则执行语句j+=j-=j*j;后,变量j的值是。
13.设int a=2;,则执行a+=a*=15;后,变量a的值是。
14.在C语言中,优先级最低的运算符是。
15.设int a,b;,表达式a=2,b=5,b++,a+b的值是。
16.设int a=12;,语句printf("%d\n",(a/3,a%3,a/10>0));的输出结果是。
17.若定义了int a=1;,则执行printf("%d\n",((a=a+4,a+5),a+6));语句的输出结果是。
18.设int x=14;,则表达式x++%-5的值为。
19.利用运算符--,下列两条语句b=5+a;a-=1;可以仅由一条语句实现,这条语句是。
20.设宏定义#define K 2+3执行printf("%d\n",K/K);后的输出结果是。
21.设宏定义#define F(x) x*x执行printf("%d\n",F(3+4));后的输出结果是。
(完整版)C语言程序设计练习题(含程序及参考答案)
C 语言练习题(所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main 函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参考使用) 1、定义一个函数 int fun(int a,int b,int c),它的功能是:若 a,b,c 能构成等边三角形函数返回 3,若能构成等腰三角形函数返回 2,若能构成一般三角形函数返回 1,若不能构成三角形函数返回 0。
#include <stdio.h>int 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。
#include <stdio.h>void 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语言程序设计练习题含程序及参考答案
完整版C语言程序设计练习题含程序及参考答案1. 请编写一个C程序,要求输入一个整数n,并打印从1到n的所有整数。
```c#include <stdio.h>int main(){int n;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++){printf("%d ", i);}return 0;}```参考答案:```请输入一个整数n:51 2 3 4 5```2. 请编写一个C程序,要求输入两个整数m和n,并计算它们的和、差、积和商(m除以n的结果)。
```c#include <stdio.h>int main(){int m, n;printf("请输入两个整数m和n:");scanf("%d %d", &m, &n);int sum = m + n;int difference = m - n;int product = m * n;float quotient = (float)m / n;printf("和:%d\n", sum);printf("差:%d\n", difference);printf("积:%d\n", product);printf("商:%.2f\n", quotient);return 0;}```参考答案:```请输入两个整数m和n:10 3和:13差:7积:30商:3.33```3. 请编写一个C程序,要求输入一个整数n,并判断它是否为素数。
```c#include <stdio.h>#include <stdbool.h>bool isPrime(int n){if (n <= 1){return false;}for (int i = 2; i * 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是素数。
C语言程序设计试卷含答案
C语言程序设计试卷含答案一、选择题(共20题,每题2分,共40分。
下面每题后面用小括号内标注了正确答案)1. 下列关键字中,用于定义变量的是(A)A. intB. ifC. whileD. for2. 变量的作用域是指变量的(C)A. 大小B. 类型C. 可访问范围D. 值3. 下列语句中,用于输出字符的是(B)A. scanfB. printfC. inputD. output4. 已知整型变量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. defineB. #defineC. constD. int9. 如果要判断一个整数是否为负数,正确的if条件语句是(C)A. if(n > 0)B. if(n => 0)C. if(n < 0)D. if(n <= 0)10. 下列哪个不是C语言的基本数据类型(D)A. intB. floatC. charD. string11. 下列关键字中,用于定义函数的是(C)A. mainB. includeC. voidD. for12. 在C语言中,表示“或者”的条件语句是(B)A. ifB. else ifC. switchD. while13. 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. enumB. longC. doubleD. true16. 在C语言中,用于跳出当前循环并继续执行下一次循环的关键字是(D)A. exitB. breakC. endD. continue17. 下列哪个函数用于从标准输入读取一个整数(A)A. scanfB. printfC. getsD. puts18. 在C语言中,用于声明一个指针变量的关键字是(A)A. int*B. pointC. newD. pointer19. 下列哪个运算符用于获取变量在内存中的地址(B)A. &B. *C. #D. %20. 下列哪个函数调用可以输出字符串(A)A. printf("Hello World!");B. scanf("Hello World!");C. gets("Hello World!");D. puts("Hello World!");二、填空题(共5题,每题4分,共20分。
c语言程序设计试卷
c语言程序设计试卷C语言程序设计试卷一、单项选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function2. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. {"Hello, World!"}D. ("Hello, World!")3. 下列哪个是C语言中的合法变量名?A. 2variableB. variable-nameC. variable#nameD. variable_name4. 在C语言中,哪个运算符用于计算两个整数的乘积?A. *B.C. /D. %5. 下列哪个语句可以正确地交换两个变量的值?A. a = b;B. a = a + b;C. a = a + b - a;D. a = b; b = a;6. 在C语言中,以下哪个是正确的数组声明语句?A. int array[10];B. int [10] array;C. int 10 array[];D. int array[10] = {0};7. 下列哪个是C语言中正确的条件语句?A. if (x > y)B. if x > yC. if (x > y) thenD. if (x > y) { /* code */ }8. 在C语言中,哪个函数用于将整数转换为字符串?A. intToStringB. itoaC. toStringD. convertToInt9. 下列哪个是C语言中正确的循环结构?A. do-whileB. while-doC. do-doD. while-while10. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. typeC. classD. union二、填空题(每空2分,共20分)11. C语言中,一个基本的数据类型是____,用来存储字符。
C语言程序设计-自测练习2019第一稿精品文档39页
1.7 自测练习1. C语言是一种()。
A. 低级语言B. 高级语言C. 机器语言D. 汇编语言2. 以下描述中错误的是()。
A. 不同的计算机可以理解的机器语言也不同B. 机器语言和汇编语言都和具体的硬件平台相关,因此统称为低级语言C. 高级语言编写的程序较为简洁,可读性较好D. 编译方式执行速度较快,且每次修改源程序后不必重新进行编译处理3. 以下描述中正确的是()。
A. C语言编程的一个显著特点是以计算机工作方式来思考和组织程序代码B. 面向过程的程序设计方法以提高执行效率、少占内存作为目标C. 面向过程的程序设计方法一般采用结构化和模块化设计思想D. 面向对象的程序设计方法提高了软件开发的可重用性,但增加了程序开发的复杂性4. 以下描述中错误的是()。
A. 编写C程序的过程通常称为编辑,结果将得到.c源文件B. C源程序经过编译,将生成本机目标代码文件,扩展名为objC. 链接过程通常是将目标代码文件和程序中使用到的其他代码连接在一起D. 运行结果不对,通常是由于语法错误引起的5.语句“printf("Welcome\nto\nC!");”将输出()。
A. 1行B. 2行C. 3行D. 4行6.有以下程序#include "stdio.h"void main( ){ float a=b=2, result;第 1 页result=a/b;printf("result=%f\n", result); }正确的说法是()。
A. 因为变量声明问题导致编译出错B. 因为result=a/b;语句有误导致编译出错C. 输出结果为result=2.000000D. 输出结果为result=1.0000007.下列程序运行时输入3 4,则程序的输出结果是()。
#include "stdio.h"int multi(int a,int b){ return a*b; }void main(){int x,y,t;printf("Please input two integers (x and y): ");scanf("%d%d", &x,&y);t= multi(x,y);printf("%d\n",t); }A. 3B. 4C. 7D. 128.以下程序的运行结果是()。
2.7.3 同步自测C语言程序设计实验与习题指导 习题答案
2.7.3 同步自测一、选择题1.设有字符数组a,则正确的输入语句是(C)。
(A)gets('a'); (B)scanf("%c",a);(C)scanf("%s",a); (D)gets("a");2.用strlen("abcd\0ef\ng\0")的结果为(A)。
(A)4 (B)5 (C)8 (D)103.在C语言中,下面关于数组的描述中正确的是( C)。
(A)数组的大小是固定的,但可以有不同类型的数组元素(B)数组的大小是可变的,但所有数组元素的类型必须相同(C)数组的大小是固定的,所有数组元素的类型必须相同(D)数组的大小是可变的,可以有不同的类型的数组元素4.字符串常量〞ab c\nt\012\xa1*2〞在内存中所占的存储空间节数是(C。
(A)11 (B)13 (C)15 (D)185.C语言中,函数调用时若实参是数组名,则传递给被调函数对应形参的是( A)。
(A)整个数组(B)数组元素的个数(C)数组占用的内存单元个数(D)数组在内存中存放的首地址6.在下面关于一维数组的定义中,其中(C)有语法错误。
(A)int x[]={1,2,3,4,5}; (B)int x[5]={0};(C)int x[]; (D)int x[5];7.设有定义:char string[]="Beijng!”;则元素string[7]为(C)。
(A)g (B)! (C)\0 (D)n8.以下不能正确定义二维数组的选项是(D)。
(A)int a[2][2]={{1},{2}}; (B)int a[][2]={1,2,3,4};(C)int a[2][2]={{1},2,3}; (D)int a[2][]={{1,2},{3,4}};9.若有说明:int a[10] ; 则对a 数组元素的正确引用是(B)。
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语言程序设计学生自出题
.一、选择题:1.下列程序的运行结果是()#include <stdio.h>int a=2;int f(int k){ static int n;int m;m=n=0;n++; a++; m++; k++;return n+m+a+k;}main(){ int k;for(k=0;k<2;k++) printf(“%d,”,f(k));printf(“\n”);}A.6,6,B.6,7,C.6,8,D.6,9,2.若有“char w; int x; float y; double z;”则表达式“w*x+z-y”值得数据类型为()A.int型B.char型C. float型D. double型3.可以使用多种形式实现函数调用,以下形式中非法的函数调用形式是()A.函数形参B.函数表达式C.函数语句D.函数实参4.以下程序的运行结果是:()void fun(long a){ printf(“%d”,a%10);if(a/10) fun(a/10);printf(“%d”,a%10);}main(){ long a=123456789;fun(a); }A.12345678987654321B. 987654321123456789C. 987654321987654321D.9876543215.有以下程序,执行后的结果是()#include <stdio.h>main(){ char s[ ]=”abcde”;s+=2;printf(“%d\n”,s[0]); }A.输出字符’c’的ASCII码值B. 程序出错C.输出字符’c’D.输出字符’a’的ASCII码值6.已有定义语句:int a=1,b=2,c=3; float d=4; 以下能正确表示数学公式的C语言表达式是()A. a/d/(b+c) B.a/(b+c)*1/d C.a/(c+b)/d D. a/(b+c)*d7.有以下程序,运行后的输出结果是()#include <stdio.h>viod fun(int *a,int n){ int t,i,j;for(i=0; i<n-1; i++)for(j=i+1; j<n; j++)if(a[i]<a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; }}main(){ int c[10]={1,2,3,4,5,6,7,8,9,0},i;fun(c+4,6);for(i=0; i<10; i++) printf(“%d,”,c[i]);printf(“\n”);}A.0,9,8,7,6,5,1,2,3,4,B.1,2,3,4,5,6,7,8,9,0,C.1,2,3,4,9,8,7,6,5,0,D.0,9,8,7,6,5,4,3,2,1,8.有以下程序,运行后的结果是()#include <stdio.h>main(){ int a=10,b=11,c=12.5;s=a++<=10&&b--<=2&&c++;printf(“%d,%d,%d,%d\n”,s,a,b,c); }A.0,10,10,12B.1,10,10,12C.1,11,11,12D.0,11,10,129.若有定义语句:double x,y,*px,*py; 执行:px=&x; py=&y; 正确的输入语句是()A.scanf(“%lf %lf”,x,y);B. scanf(“%f %f”,&x,&y);C. scanf(“%f %f”,x,y);D. scanf(“%lf %le”,px,py);10. 有以下程序,运行后的结果是()#include <stdio.h>main(){ char *p1=0; long*p2; double *p3;printf(“%d,%d,%d\n”,sizeof(p1), sizeof(p2), sizeof(p3) ); }A.0,0,0B. 4,4,4C.1,2,4D. 1,4,811.下题函数功能为:求二分之一的圆面积,函数通过形参得到圆的半径,将求出的二分之一圆面积通过函数返回至返回(面积公式s=πR )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》自测练习一、选择题1. 由C语言源程序文件编译而成的目标文件的缺省扩展名为( )。
A. cppB. exeC. objD. C2. C语言程序的基本模块为()。
A. 表达式B. 标识符C. 语句D. 函数3. x>0 || y==5的相反表达式为()。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==54. 枚举类型中的每个枚举常量的值都是一个()。
A. 整数B. 浮点数C. 字符D. 逻辑值5. 循环语句“for(int i=0; i<n; i++) S;”中循环体S被执行的次数为( )。
A. 1B. n-1C. nD. n+16. 在下面的while循环语句中,其循环体被执行的次数为()。
int i=0,s=0; while(s<20) {i++; s+=i;}A. 4B. 5C. 6D. 77. 若定义了函数double *function(), 则返回值类型为()。
A. 实数型B. 实数指针型C. 函数指针型D. 数组型8. 若用数组名作为函数调用的实参,传递给形参的是()。
A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数9. 假定a为一个整型数组名,则元素a[4]的地址比该数组的首地址大( )个字节。
A. 4B. 8C. 16D. 3210. 下列给字符数组赋初值时,正确的是()。
A. char s1[]="abcdef";B. char s2[4]="abcd";C. char s3[2][3]={"abc","xyz"};D. char s4[4][]={'a','x','s','t'};11. 要使p指向二维整型数组a[10][20],p应定义为()。
A. int *p=a;B. int **p=a;C. int *p[20]=a;D. int(*p)[20]=a;12. 标准输入设备的文件流标识符是()。
A. stdinB. stdoutC. stderrD. stdio13. 若要以读/写操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开方式字符串为()。
A. "r+"B. "ab+"C. "rb+"D. "wb+"二、填空题1. 单行或多行注释的开始标记符为__________。
2. 使用#include命令可以包含一个头文件,也可以包含一个______文件。
3. 执行“printf("%s%s%d","wei","rong",18);”语句后得到的输出结果为________。
4.执行“printf("%c",'A'+2);”语句后得到的输出结果为________。
5.short类型的大小为________个字节。
6. 十进制数3.26f的类型为________。
7. 假定y=10,则表达式++y*3的值为________。
8. 关系表达式(x==0)的等价表达式为________。
9.若x=5,y=10,则x!=y的逻辑值为________。
10. 在if语句中,每个else关键字与它前面同层次并且最接近的________关键字相配套。
11. 当在程序中执行到________语句时,将结束所在循环语句中循环体的一次执行。
12. 假定二维数组的定义为“char a[M][N];”,则该数组所占存储空间的字节数为________。
13. 存储字符串"a"需要占用存储器的________个字节空间。
14. strlen函数用于计算一个字符串的________。
15.函数中的形参变量的初值由调用该函数时对应的________值决定。
16. 程序的编译是以__________为单位进行的。
17. 假定a是一个一维数组,则a[i]的指针访问方式为________。
18. 执行int *p=malloc(sizeof(int))操作得到的一个动态分配的整型对象为________。
19. 假定要动态分配一个类型为struct Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句表达式为________________ =malloc(n*sizeof(struct Worker))。
20. 与结构成员访问表达式p->name等价的表达式是____________。
三、写出下列每个程序运行后的输出结果1. #include<stdio.h>void main() {int i, s=0;for(i=1;;i++) {if(s>50) break;if(i%2==0) s+=i;}printf("i,s=%d, %d\n",i,s);}2. #include<stdio.h>void main() {char ch='*';int i, n=5;while(1) {for(i=0;i<n;i++) printf("%c",ch);printf("\n");if(--n==0) break;}}3. #include<stdio.h>void main(){int x=24,y=88;int i=2,p=1;do {while(x%i==0 && y%i==0) {p*=i; x/=i; y/=i;}i++;}while(x>=i && y>=i);printf("%d\n",p*x*y);}4. #include<stdio.h>void main() {int a[9]={36,25,48,24,55,40,18,66,20};int i, b1, b2;a[0]<=a[1]? (b1=a[0], b2=a[1]):(b1=a[1],b2=a[0]);for(i=2; i<9; i++)if(a[i]<b1) {b2=b1; b1=a[i];}else if(a[i]<b2) b2=a[i];printf("%d %d\n",b1,b2);}5. #include<stdio.h>void main() {int a=10, b=20;printf("%d %d\n",a,b);{ int b=a+25;a*=4;printf("%d %d\n",a,b);}printf("%d %d\n",a,b);}6. #include<stdio.h>void SelectSort(int a[], int n){int i,j,k,x;for(i=1;i<n;i++) { //进行n-1次选择和交换k=i-1;for(j=i;j<n;j++)if(a[j]<a[k]) k=j;x=a[i-1]; a[i-1]=a[k]; a[k]=x;}}void main(){int i;int a[6]={20,15,32,47,36,28};SelectSort(a,6);for(i=0; i<6; i++) printf("%d ",a[i]);printf("\n");}7. #include<stdio.h>void LE(int* a, int* b) {int x=*a;*a=*b; *b=x;}void main() {int x=15, y=26;printf("%d %d\n",x,y);LE(&x,&y);printf("%d %d\n",x,y);}8. #include<stdio.h>#include<string.h>struct Worker {char name[15]; //姓名int age; //年龄float pay; //工资};int Equal(struct Worker* r1, struct Worker* r2){if(strcmp(r1->name, r2->name)==0) return 1;else return 0;}void main() {struct Worker a[4]={{"abc",25,420},{"defa",58,638},{"ghin",49,560},{"jklt",36,375}};struct Worker x={"defa"};int i;for(i=0; i<4; i++)if(Equal(a+i,&x)) break;if(i>=4) printf("没有查找所需要的记录!\n");else printf("%s %d %6.2f\n",a[i].name,a[i].age,a[i].pay);}四、写出下列每个函数的功能1. int SE(int n) { //n为大于等于1的整数int x,s=0;printf("输入%d个整数: ",n);scanf("%d",&x);if(n==1) return x;s=x;while(--n) {scanf("%d",&x); s+=x;}return s;}2. #include<stdio.h>void WA(int a[], int n) {int i,k,j,x;for(i=0;i<n-1;i++) {k=i;for(j=i+1;j<n;j++)if(a[j]>a[k]) k=j;x=a[i]; a[i]=a[k]; a[k]=x;}}3. #include<stdio.h>int* LJ(int a[], int n) {int i,k=0;for(i=1;i<n;i++)if(a[i]>a[k]) k=i;return &a[k];}4. int Output(struct IntNode *f){int sum=0;if(!f) return -9999; //用返回特定值-9999表示空表while(f) {sum+=f->data;f=f->next;}return sum;}假定struct IntNode的类型定义为:struct IntNode {int data; //结点值域struct IntNode* next; //结点指针域};5. int wr4(FILE* fptr)char ch;int c=0;fseek(fptr,0,SEEK_SET);while(1) {ch=fgetc(fptr);if(ch!=EOF) c++;else break;}return c;}五、根据下列每个题目要求编写程序1. 编写一个函数fun(),首先从键盘上输入一个4行4列的一个实数矩阵到一个二维数组a[4][4]中,接着求出主对角线上元素之和,最后返回求和结果。