C语言程序设计题考试题库选择填空题完整答案精美篇
(完整版)C语言程序设计练习及答案

C、int num[0..10];D、int num[];
33、下列语句中,不能正确定义二维数组的是(A)。
A、int a[2][]={{1,2},{3,4}};B、int a[2][2]={{1}, 2,3};
C、int a[][2]={1,2,3,4};D、int a[2][2]={{1},{2}};
C、指针数组,指针函数D、数组指针,函数指针
26、在说明语句:int *f();中,标识符f代表的是(C)。
A、一个用于指向一维数组的指针变量
B、一个用于指向整型数据的指针变量
C、一个返回值为指针型的函数名
D、一个用于指向函数的指针变量
27、使用结构体struct的目的是(A)。
A、将一组相关的数据作为一个整体,以便程序使用
main( )
{ static int a[ ]={1, 3, 5}, b[ ]={2, 6, 10};
int i, s=0;
for(i=0; i<3; i++) s+=a[i] / b[i];
printf("%d", s); }
A、0B、1
C、1.5D、2
49、下列程序段的输出结果为(A)。
int a=4,b=3,c=2,d=1;
C、1D、3
20、在一个表达式中含下列运算符,优先级最高的是(B)。
A、赋值运算符B、算术运算符
C、条件运算符D、关系运算符
21、下列语句组中,正确的是(C)。
A、char *s; s={"Beijing"};B、char s[8]; s={"Beijing"};
C、char *s; s="Beijing";D、char s[8]; s="Beijing";
C语言考试填空题(全部答案)

计算机程序设计基础(C语言)程序填空练习题程序填空:阅读程序。
在划线处填写适当的表达式或语句,使程序完整并符合题目要求1.输入一个字符,判断该字符是数字、字母、空格还是其他字符。
m ain( ) 参考答案:{ char ch;ch=get char();if( ) ch>='a'&&ch<='z'||ch>='A'&&ch<='Z'printf("It is an English character\n");else if( ) ch>='0'&&ch<='9'printf("I t is a digit character\n");else if( ) ch==' 'printf("It is a space character\n");elseprintf("It is other character\n"); }2.10个学生成绩按交换法排序。
main(){ float score[10], temp1;int i,j;printf("Please enter score:\n");f or (i=0; i<10; i++)scanf("%f",&score[i]);f or (i=0; i<9; i++)f or (j=i+1; j<10; j++)if(score[j] > score[i]){ temp1=score[j];score[j]=score[i];score[i]=temp1;}printf("Sorted results:\n");f or (i=0; i<10; i++)printf("%4.0f\n", score[i]); }11.排序函数:用交换法按成绩由高到低对学生成绩重新排序void Sort(float score[ ],int n){ int i,j;f loat t emp1;f or (i=0; i<n-1; i++){ f or (j=i+1; j<n; j++)if( ) score[j] > score[i]{ t emp1 = score[j];; score[j]=score[i];score[i] = temp1;}}}自定义一函数求n!, 编写程序输入n,输出n!.#include<stdio.h>long jc(int n){ int i=1;long p=1;while (i <= n){ p=p*i;i++; }} return p;main(){ int n;print f("Please ent er n:");scanf("%d",&n);printf("%d!= %ld\n",n,); jc(n)}4.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。
C语言程序设计第1-7章选择、填空习题及答案

C语言程序设计第1-7章选择、填空习题及答案第一篇:C语言程序设计第1-7章选择、填空习题及答案习题一一、选择题1.C程序的基本单位是(A)。
A.函数 B.文件 C.语句 D.字符2.C程序中的变量(B)。
A.不用说明B.先说明后引用D.引用和说明顺序无关 B.执行语句之前 D.位置无关 B.符号语言 D.面向对象的语言C.先引用后说明3.变量的说明在(B)。
A.执行语句之后 C.执行语句当中 4.C语言是一种(C)。
A.机器语言 C.高级语言二、填空题1.一个C程序总是从主函数开始执行。
2.结构化程序由顺序、选择、循环三种基本结构构成。
3.一个C程序只有一个名为 main 的主函数。
4.C程序中的每个语句以分号结束。
5.C程序中,函数由函数首部和函数体组成。
6.每个基本结构有一个入口和一个出口,没有死循环和死语句。
7.算法是计算机解决问题所依据的步骤。
习题二一、选择题1.下列数据中属于字符串常量的是(B)。
A.ABC A.4 A.6 B.“ABC” C.'abc' D.'A' 2.在计算机内存中,'n'占用的字节数是(C)。
B.3 C.1 D.2 D.4 D.2.654e11 3.字符串“ABC”在内存中占用的字节数是(D)。
B.8 C.3 4.在C语言中,合法的长整型常数是(B)。
A.568701400 B.0L A.ASCII代码值C.0.03546287 B.BCD代码值D.内码值C.b.β C.“ D.b_4 D.0x4 5.char型常量在内存中存放的是(A)。
C.十进制代码值A.?bb A.6.下列各项中正确的标识符是(D)。
B.a=8 B.07.下列不正确的转义字符是(D)。
8.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为(B)。
A.0 B.1 C.2 D.3 D.b=(float)a/2 9.设a的值为5,执行下列语句后,b的值不为2的是(C)。
c语言考试题及答案详解

c语言考试题及答案详解C语言考试题及答案详解一、选择题1. 下列哪个是C语言的关键字?A. voidB. mainC. returnD. print答案:A2. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C二、填空题1. 在C语言中,用于定义一个整型变量的关键字是 ____ 。
答案:int2. 以下代码段的输出结果是____。
```cint a = 5;printf("%d", a++);```答案:5三、简答题1. 请简述C语言中数组的定义方式。
答案:在C语言中,数组的定义方式是通过指定数据类型、数组名和数组的大小。
例如,定义一个整型数组,大小为10,可以写作:int array[10];四、编程题1. 编写一个C程序,实现求两个整数的和,并输出结果。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("Enter two numbers: ");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("Sum is: %d\n", sum);return 0;}```五、论述题1. 论述C语言中指针的概念及其重要性。
答案:指针是C语言中的一个重要概念,它存储了变量的内存地址。
指针的重要性在于它允许程序员直接操作内存,这使得动态内存分配、数组操作、函数参数传递等成为可能。
指针的使用提高了程序的灵活性和效率,但也增加了编程的复杂性。
六、案例分析题1. 给定以下C语言代码段,分析其功能并指出可能存在的问题。
```cint func(int *p) {return *p * 10;}int main() {int a = 5;printf("%d\n", func(&a));return 0;}```答案:该代码段定义了一个函数`func`,它接受一个整型指针作为参数,并返回该指针指向的值乘以10的结果。
《c语言程序设计》试题库及答案

《c语言程序设计》试题库及答案一、选择题1. 下列哪个选项是C语言的标准库函数?A. printfB. scanfC. mainD. All of the above答案:D2. C语言中,用于定义字符串的字符数组的语法是什么?A. char str[] = "Hello";B. char str[] = {"Hello"};C. char str = "Hello";D. char str[] = 'Hello';答案:A3. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. functionC. defD. void答案:A二、填空题1. 在C语言中,定义一个整型变量的正确方式是:________。
答案:int variable_name;2. C语言中,用于计算两个数的和的运算符是:______。
答案:+3. 如果要在C语言中声明一个指向整型的指针,应该使用:________。
答案:int *pointer_name;三、简答题1. 请简述C语言中数组和指针的区别。
答案:数组是一组相同类型的元素的集合,可以通过索引访问每个元素。
指针是一个变量,它存储了另一个变量的内存地址。
数组名可以被用作指向数组首元素的指针,但数组本身是一个固定大小的实体,而指针可以被重新赋值为其他地址。
2. 解释C语言中的结构体(struct)是什么?答案:结构体是一种用户定义的数据类型,它允许将不同的数据类型组合成一个单一的数据结构。
它使得可以创建包含多种数据类型的复杂数据结构。
四、编程题1. 编写一个C语言程序,实现计算两个整数的和,并输出结果。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("Enter two integers: ");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("The sum is: %d\n", sum);return 0;}```2. 编写一个C语言程序,实现将一个字符串反转,并输出结果。
C语言常见复习题(选择填空)及参考答案

C语言常见复习题(选择填空)及参考答案C语言常见复习题及参考答案一、选择题1.下述标识符中,()是合法的用户标识符。
A.A#CB.getchC.voidD.ab*3.以下选项中不合法的用户标识符是()。
A.abc.cB.fileC.MainD.PRONTF4.以下选项中不合法的用户标识符是()。
A.123B.printfC.Anbsp;D.Dim5.可以在C语言程序中用做用户标识符的一组标识符是()。
A.voidB.as-b3C.forD.2cdefine -123 -abc DoWORD If cas SIG7.()是构成C语言的基本单位。
A.函数B.过程C.子程序D.子例程8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。
(1).A.包含3个字符 B.包含2个字符C.包含1个字符D.无定值,说明不合法(2).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法(3).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法9.若x为int型变量,则执行以下语句后,x的值为x=6;x+=x-=x*xA.36B.-60C.60D.-2411.以下运算符中优先级最低的算符为(),优先级最高的为()。
A.&&B.&C.|=D.||E.?:F.!=12.若有运算符>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列顺序为A.*= << > % sizeofB.<< *= > % sizeofC.*= > << sizeof %D.*= > << % sizeof13.若有以下类型说明语句char w; int x; float y; double z;则表达式w*x+z-y 的结果是()类型。
C语言程序设计题考试题库选择填空题完整答案精美篇

C语言程序设计题考试题库选择填空题完整答案精美篇※试题说明:选择题共15道,2分/道:数据类型1个、选择结构2个、循环结构2个、数组3个、函数3个、预处理1个、指针2个、结构体1个。
基本操作题、程序改错题、程序填空题、程序设计题。
考试时间90分钟!《顺序选择结构》1、若有定义:int a, b; 要通过scanf("%d:%d", &a, &b);使a得到5, b得到6, 则正确的输入形式为:CA) 5 6 B) 5,6C) 5:6D) 5;62、有如下程序段int a=14,b=15,x;char c='A';x=(a&&b) && (c<'B'); //假或假为假,假且假为假,……,非0为1,非1为0执行该程序段后,x的值为DA) ture B) falseC) 0 D) 13、以下不正确的if语句是( B )。
A) if(x>y) printf("%d\n",x);B) if (x=y)&&(x!=0) x+=y; //应该在两个括号外再加一个大括号C) if(x!=y) scanf("%d",&x); else scanf("%d",&y);D) if(x<="">4、以下程序段运行结果是( C )。
int w=3,z=7,x=10;printf("%d\n",x>10?x+100:x-10);printf("%d\n",w++||z++);printf("%d\n",w>z);printf("%d\n",w&&z);A) 0 B) 1 C) 0 D) 01 1 1 11 1 0 01 1 1 05、下面程序的输出是: C#includeint main( ){ int a=-1,b=4,k;k=(a++<=0) && (!(b--<=0)); //b此时变成了3printf("%d %d %d\n",k,a,b);return 0;}A) 0 0 3 B) 0 1 2C) 1 0 3D) 1 1 26、下面的程序,当j的取值分别为3,2,1时的输出结果分别是( A )。
c语言课程试题及答案

c语言课程试题及答案一、选择题(每题5分,共20分)1. 下列关于C语言的描述中,错误的是()。
A. C语言是一种高级编程语言B. C语言可以用于编写操作系统C. C语言不支持面向对象编程D. C语言支持多线程编程答案:C2. 在C语言中,用于定义一个整型变量的关键字是()。
A. intB. floatC. doubleD. char答案:A3. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ->D. ++答案:C4. C语言中,用于定义一个函数的关键字是()。
A. functionB. defineC. voidD. int答案:A二、填空题(每题5分,共20分)1. 在C语言中,用于声明一个字符串的语句是______。
答案:char str[] = "Hello";2. C语言中,用于执行循环的语句是______。
答案:for 或 while3. C语言中,用于判断条件的语句是______。
答案:if 或 switch4. 在C语言中,用于定义一个二维数组的语句是______。
答案:int arr[3][4];三、简答题(每题10分,共20分)1. 请简述C语言中指针的概念及其用途。
答案:指针是C语言中的一种变量,它存储了另一个变量的内存地址。
指针可以用于直接访问内存,提高程序的效率;可以作为函数参数,避免数据的复制;可以用于数组操作;可以用于实现动态内存分配等。
2. 请简述C语言中数组和指针的关系。
答案:在C语言中,数组名可以被看作是一个指向数组首元素的指针。
通过数组名可以访问数组中的元素,而数组的索引操作符[]可以用于访问数组元素。
指针可以用于遍历数组,实现数组的动态操作。
四、编程题(每题20分,共40分)1. 编写一个C语言程序,实现输入一个整数,输出该整数的平方。
答案:```c#include <stdio.h>int main() {int num, square;printf("Enter an integer: ");scanf("%d", &num);square = num * num;printf("The square of %d is %d.\n", num, square);return 0;}```2. 编写一个C语言程序,实现输入一个字符串,然后输出该字符串的逆序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
※试题说明:选择题共15道,2分/道:数据类型1个、选择结构2个、循环结构2个、数组3个、函数3个、预处理1个、指针2个、结构体1个。
基本操作题、程序改错题、程序填空题、程序设计题。
考试时间90分钟!《顺序选择结构》1、若有定义:int a, b; 要通过scanf("%d:%d", &a, &b);使a得到5, b得到6, 则正确的输入形式为:CA) 5 6 B) 5,6C) 5:6D) 5;62、有如下程序段int a=14,b=15,x;char c='A';x=(a&&b) && (c<'B'); //假或假为假,假且假为假,……,非0为1,非1为0执行该程序段后,x的值为DA) ture B) falseC) 0 D) 13、以下不正确的if语句是( B )。
A) if(x>y) printf("%d\n",x);B) if (x=y)&&(x!=0) x+=y; //应该在两个括号外再加一个大括号C) if(x!=y) scanf("%d",&x); else scanf("%d",&y);D) if(x<y) {x++;y++;}4、以下程序段运行结果是( C )。
int w=3,z=7,x=10;printf("%d\n",x>10?x+100:x-10);printf("%d\n",w++||z++);printf("%d\n",w>z);printf("%d\n",w&&z);A) 0 B) 1 C) 0 D) 01 1 1 11 1 0 01 1 1 05、下面程序的输出是: C#include <stdio.h>int main( ){ int a=-1,b=4,k;k=(a++<=0) && (!(b--<=0)); //b此时变成了3printf("%d %d %d\n",k,a,b);return 0;}A) 0 0 3 B) 0 1 2C) 1 0 3D) 1 1 26、下面的程序,当j的取值分别为3,2,1时的输出结果分别是( A )。
#include <stdio.h>int main( ){ int j,p=10;scanf("%d",&j);switch (j){ case 1:case 2: printf("%d ",p++); break;case 3: printf("%d ",--p);}return 0;}A) 9 10 10B) 9 8 7C) 10 10 9 D) 9 9 97、下面程序的输出结果是( C )。
#include <stdio.h>int main( ){ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);return 0;}A) -1 1 B) 0 1C) 1 0 D) 0 08、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是: BA) Z B) aC) z D) A9、putchar(97);的输出结果是: BA) b B) aC) 97.0 D) 97ASCII码:A~Z----65~90 a~z-----97~122 相差32《循环体》※1、对于for(表达式1;;表达式3) 可理解为( B )。
A) for(表达式1;0;表达式3)B) for(表达式1;1;表达式3)C) for(表达式1;表达式1;表达式3)D) for(表达式1;表达式3;表达式3)2、以下程序的输出结果是( C )。
#include <stdio.h>int main( ){ int count,i=0;for(count=1; count<=4; count++){i+=2; printf("%d",i);}return 0;}A) 20 B) 246C) 2468D) 22223、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
#include<stdio.h>int main( ){ float x,amax,amin;scanf("%f",&x);amax=x;amin=x;while (________ ){ if (x>amax) amax=x;if (______) amin=x;scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,amin);return 0;} DA) x<=0 B) x>0x>amin x<=aminC) x>0 D) x>=0 //因为x<0时结束,所以x>=0x>amin x<amin※4、执行以下程序后,输出的结果是( D )。
#include<stdio.h>int main( ){ int y=10;do {y--;}while (--y);printf("%d\n",y--);return 0;}A) -1 B) 1C) 8D) 05、有如下程序#include<stdio.h>int main( ){ int n=9;while(n>6) {n--;printf("%d",n);}return 0;}该程序段的输出结果是 BA) 987 B) 876C) 8765 D) 98766、下面程序的运行结果是( B )。
#include<stdio.h>int main( ){ int s=0,i=1;while (s<=10){ s=s+i*i;i++;}printf("%d",--i);return 0;}A) 4 B) 3C) 5 D) 6※7、以下程序段( C )。
x=-1;do{ x=x*x; }while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误8、下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。
C#include <stdio.h>int main( ){ int i,j;for(i=0;______; i++) //因为100以内,所以不能超过100,即i<10或i>=9 { j=i*10+6;if (_______) continue;printf("%d ",j);}return 0;}A) i<=10 B) i<10j%3!=0 j/3C) i<10 D) i<=9j%3!=0 i%39、下列程序的输出结果是( B )。
#include<stdio.h>int main( ){ int i, j, k;for(i=0;i<=2;i++){ for(k=1;k<=i;k++) printf(" "); //逐行在原有的基础上再空一格for(j=0;j<=3;j++) printf("*"); //每行输出4个*号printf("\n");}return 0;}A) **** B) ******** ******** ****C) **** D) ******* ******* ***1、执行下面的程序段后,变量k中的值为____A______。
int k=3,s[2];s[0]=k; k=s[1]*10; //因为s[1]未知,所以k未知!A) 不定值B) 33C) 30 D) 102、已知数组a的赋值情况如下所示,则执行语句a[2]++; 后,a[1] 和a[2]的值分别是____B____。
a[0] a[1] a[2] a[3] a[4]┌──┬──┬──┬──┬──┐│10 │20 │30 │40 │50 │└──┴──┴──┴──┴──┘A) 20和30 B) 20和31 //数组的位置不会变化,++放后面或前面变的是数值!C) 21和30 D) 21和313、有如下程序#include<stdio.h>int main( ){ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=0;i<3;i++)for(j=0;j<=i;j++) s+=a[i][j];printf("%d\n",s);return 0;}该程序的输出结果是___B_____。
A) 18 B) 19C) 20 D) 214、以下程序的输出结果是____A____。
#include<stdio.h>int main( ){ char p1[ ]="abcd", p2[ ]="efgh",str[50]="ABCDEFG";strcat(str,p2); strcat(str,p1); //先把p2的值赋给str, 再把p1的值赋给strstr本身也有值!按顺序来就行。
printf("%s",str);return 0;}A) ABCDEFGefghabcd B) ABCDEFGefghC) efghabcd D) ABCDEFGabcdefgh5、下面程序的输出是____C____。
#include<stdio.h>int main( ){ int a[10]={1,2,3,4,5,6,7,8,9,10};printf("%d\n",a[a[1]*a[2]]);return 0;}A) 3 B) 4C) 7D) 26、若有以下说明:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; charc='a',d,g;则数值为4的表达式是____D____。