C语言习题与答案
《C语言程序设计》练习题及答案
《C语言程序设计》练习题及答案1. 单选题1. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是A. p=1;B. *q=2;C. q=p;D. *p=5;正确答案:D2. 设有int x=11;则表达式(x++*1/3)的值是A. 3B. 4C. 11D. 12正确答案:A3. 下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A. 3B. 4C. 1D. 2正确答案:A4. sizeof(float)是A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式正确答案:B5. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A. a=20000+20000;B. a=4000*10;C. a=30000+10000;D. a=4000L*10L正确答案:D6. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A. 5B. 14C. 8D. 输出项不合法,无正常输出正确答案:A7. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A. 4B. 16C. 32D. 52正确答案:C8. 下面能正确进行字符串赋值操作的是A. char s[5]={"ABCDE"};B. char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};C. char *s;s="ABCDE";D. char *s;char a; scanf("%s",&s);正确答案:C9.以下程序的输出结果是#include "stdio.h"void reverse(int a[],int n){int i,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++) s+=b[i];printf("%d\n",s);}A. 22B. 10C. 34D. 30正确答案:A10. 以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案:D2. 多选题11. 以下______是正确的转义字符。
c语言习题(带答案)
一、选择1若有表达式(a)(--x):(++y),则其中与a等价的表达式是A)a==1B)a==0C)a!=1D)a!=02有以下程序段intx,y,z;x=10;y=50;z=30;if(x>y)x=y,y=z;z=x;printf(“x=%dy=%dz=%d\n”,x,y,z);程序的输出结果是A)x=10y=50z=10B)x=10y=50z=30C)x=10y=30z=10D)x=50y=30z=503下面的函数调用语句中func函数的实参个数是f(f2(u1,u2),(u3,u4),(u6,max(u7,u8)));A)3B)4C)5D)84 以下叙述中错误的是A)用户定义的函数中可以没有return语句B)用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C)用户定义的函数中若没有return语句,则应当定义函数为void类型D)函数的return语句中可以没有表达6有以下程序#include<>voidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={11,12,13,14,15,16,17,18,19,20},i;for(i=0;i<10;i+=2)fun(c[i],c[i+1]);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序的运行结果是A)11,12,13,14,15,16,17,18,19,20B)12,11,14,13,16,15,18,17,20,19C)20,19,18,17,16,15,14,13,12,11D)20,11,12,13,14,15,16,17,18,198有以下程序main(){ int a=7,b=8,*p,*q,*r;p=&a;q=&b;r=p; p=q;q=r;printf("%d,%d,%d,%d\n",*p,"q,a,b);}程序运行后的输出结果是A)8,7,8,7 B)7,8,7,8 C)8,7,7,8 D)7,8,8,79 .s1和s2已正确定义并分别指向两个字符串。
c语言习题集及答案
计算机系统概述一、简答题1.什么是计算机系统?包括哪几部分?答:计算机系统是一种动态实体,用于解决问题以及与它所处的环境进行交互;计算机系统包括硬件、软件和它们管理的数据。
3.简述计算机软件各个时代的主要特征。
答:第一代机器语言编写,第二代高级语言编写,第三代出现操作系统,第四代出现结构程序设计,第五代出现面向对象的程序设计语言。
4.计算机是如何分类的?答:按工作原理和运算方式分为数字电子计算机(Digital Computer)、模拟电子计算机(Analog Computer)和数字模拟混合计算机(Hybrid Computer);按设计目的分为通用计算机和专用计算机;按用途科学计算、工程计算机用的计算机、工业控制用的计算机和数据处理用的计算机;按规模和性能分为巨型机、大型机、小型机、微型机、工作站、服务器、网络计算机和嵌入式计算机等。
5.计算机具有哪些特点?答:运算速度快、精度高;具有逻辑判断功能;具有记忆功能;自动化程度高、通用性强。
6.衡量计算机性能的指标有哪些?答:从几个方面衡量,衡量cpu的指标有字长、时钟周期和主频,衡量内存的指标有内存容量、存取周期,衡量外设的指标有输入输出最高频率。
7.简述计算机主要应用在哪些方面。
答:科学计算、信息传输和信息处理、实时控制、辅助功能(设计/制造/教学)、艺术和娱乐。
8.简述计算机系统抽象分层,及每一层的功能。
答:主要分为七层,信息表示层反映了在计算机上表示信息的方式,它是一个纯概念层;硬件层探讨计算机系统的物理硬件组成;程序设计层负责解决人们的一些问题、用于实现计算的指令以及管理数据;操作系统层用来管理计算机的各种资源,提供人与计算机交互的接口;网络通信层是计算机系统运行的基础,计算机连接到网络上共享信息和资源;应用软件层的重点则是将计算机与一个实际应用领域相结合。
计算机中的信息表示一. 判断题1.二进制数在计算中很重要,因为二进制数可以被转换成以任何数为基数的数。
C语言各章节练习题(含答案)
一、C语言概述练习题选择1.一个C程序的执行是从。
本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成函数组成 C) 若干过程组成 D) 若干子程序组成二、数据类型、运算符与表达式选择. 1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为。
x=(i=4,j=16,k=32) A) 4 B) 16 D) 522.下列四组选项中,均不是C语言关键字的选项是。
C) include case scanf D) while go pow3.下列四组选项中,均是不合法的用户标识符的选项是。
int C) float la0 _A D) -123 abc TEMP4.下列四组选项中,均是合法转义字符的选项是。
\”’‘\\’‘\n’ B)‘\’‘\017’‘\”’ C)‘\018’‘\f’‘xab’ D)‘\\0’‘\101’‘xlf’5.下面不正确的字符常量是。
“c”B) ‘\\’’C) ‘’D) ‘K’6.以下叙述不正确的是。
A) 在C程序中,逗号运算符的优先级最低 B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值7.以下叙述正确的是。
(完整版)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语言习题集(含答案).
一、单选题:(1) 在C语言提供的合法的关键字是()A)swicth B) cher C)Case D)default(2)在C语言中,合法的字符常量是()A)'\084' B) '\x43'C)'ab' D) "\0"(3)若有定义和语句:char s[10]: s="abcd"; printf("%s\n",s);则结果是(以下u代表空格)()A)输出abcd B)输出aC)输出abcduuuuu D)编译不通过(4) 若有定义和语句:int **pp, *p, a=10, b=20;pp=&p; p=&a; p=&b; printf("%d,%d\n",*p,**pp);则输出结果是:()A)10, 20 B)10,10 C)20,10 D)20,20(5)若有以下定义和语句:int u=010, v=0x10,w=10;printf("%d,%d,%d\n", u, v, w);则输出结果是( )A) 8,16,10B) 10,10,10 C)8, 8,10 D) 8,10,10(6) 若有以下定义和语句char c1=' b', c2='e';printf("%d,%c\n", c2-c1,c2-'a'+"A");则输出结果是( )A)2,M B)3,EC)2,E ?D)输出项与对应的格式控制不一致,输出结果不确定(7) 若有以下定义:char s[20]="programming",*ps=s;则不能代表字符o的表达式是( )A) ps+2 B) s[2] C) ps[2] D) ps+=2,*ps(8) 若i, j已定义为int类型,则以下程序段中内循环体的总的执行次数是( )for (i=5; i; i--)for(j=0; j<4; j++) {...}A) 20B) 25 C) 24 D) 30(9)若有以下定义和语句:char *s1="12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是( )A) 4B) 5 C) 9 D) 10(10)若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是( )A) *p B) a[10]C)*a D) a[p-a](11)下面程序的输出是( )main( ){ char *s="121";int k=0, a=0, b=0;do{k++;if(k%2==0) {a=a+s[k]-'0';continue;}b=b+s[k]-'0'; a=a+s[k]-'0';}while (s[k+1]);printf("k=%d a=%d b=%d\n",k,a,b);A) k=3 a=2 b=3 B) k=3 a=3 b=2C) k=2 a=3 b=2D) k=2 a=2 b=3(12) 下面程序的输出是( )main( ){ unsigned a=32768;printf("a=%d\n", a);} 运行结果:-32768A)a=-32768 B)a=32767C)a=-32767 D)a=-1(13) 若有以下定义:float x; int a,b; 则正确的switch 语句是( )A)switch(x) B) switch(x){ case1.0: printf("*\n"); { case1, 2: printf("*\n");case2.0: printf("**\n"); case3: printf("**\n");} }C) switch (a+b)D) switch (a+b);{ case 1: printf("\n"); { case 1: printf("*\n");case 1+2: printf("**\n"); case 2: printf("**\n");} }(14) 以下程序输出的结果是( )main( ){ char w[ ][10]={"ABCD","EFGH","IJKL","MNOP"}, k;for (k=1;k<3;k++)printf("%s\n",&w[k][k]);}A) ABCD B) ABCDFGH EFGKL IJMC) EFG D) FGHJK KLO(15)若数组名作实参而指针变量作形参,函数调用实参传给形参的是( )A.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址(16) 若变量已正确定义并赋值,下面符合C语言语法的表达式是( )A) a:=b+1 B) a=b=c+2C) int 18.5%3 D) a=a+7=c+b(17) C语言中运算对象必须是整型的运算符是( )A) %=B) / C) = D) 〈=(18) 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( )A) 1 B) 2 C) 2.0 D) 2.5(19) 若变量a、i已正确定义,且i已正确赋值,合法的语句是( )A) a==1 B) ++i; C) a=a++=5; D) a=int(i);(20) 若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是( )A) 0 B) 0.5 C) 1 D) 2(21) 有如下程序main( ){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}运行该程序的输出结果是( )A) 3 4 B) 4 2 C) 4 3 D) 3 3(22) 能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是( )A) a>=10 or a<=0 B) a>=0|a<=10C) a>=10 &&a<=0 D) a>=10 || a<=0main( ){ int x=1, a=0, b=0;switch(x){ case 0: b++;case 1: a++;case 2: a++; b++; }printf(“a=%d,b=%d\n”,a,b); }该程序的输出结果是( )A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2(24) 有如下程序main( ){ float x=2.0, y;if(x<0.0) y=0.0;else if(x<10.0) y=1.0/x;else y=1.0;printf(“%f\n”,y); }该程序的输出结果是( )A) 0.000000 B) 0.250000 C) 0.500000D) 1.000000(26) 有如下程序main( ){ int i, sum;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是( )A) 6 B) 3 C) 死循环D) 0main ( ){ int x=23;do{ printf(“%d”,x--);} while(!x); }该程序的执行结果是( )A) 321 B) 23C) 不输出任何内容D) 陷入死循环(28) 有如下程序main( ){ int n=9;while(n>6) {n--; printf(“%d”,n); } }该程序段的输出结果是( )A) 987 B) 876C) 8765 D) 9876(29) 设有说明语句:char a=’\72’;则变量a( )A) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法(30) 有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是( )A) 3 B) 4 C) 5 D) 有语法错(31) 有如下程序int func(int a,int b){ return(a+b); }main( ){ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%\d\n”,r); }该程序的输出的结果是( )A) 12 B) 13 C) 14 D) 15int *p, a=10,b=1;p=&a; a=*p+b;执行该程序段后,a的值为( )A) 12 B) 11 C) 10 D) 编译出错(33) 对于基类型相同的两个指针变量之间,不能进行的运算是( )A) < B) = C) + D) -(34) 有如下程序long fib(int n){ if (n>2) return(fib(n-1)+fib(n-2));else return(2);}main( ){ printf(“%d\n”, fib(3)); }该程序的输出结果是( )A) 2 B) 4 C) 6 D) 8(35) 在C语言中,函数的隐含存储类别是( )A) auto B) static C) extern D) 无存储类别(36) 有如下程序#define N 2#define M N+1#define NUM 2*M+1main( ){ int i;for(i=1;i<=NUM;i++) printf(“%d\n”,i);}该程序中的for循环执行的次数是( )A) 5 B) 6C) 7 D) 8char fun(char *p){ return p; }该函数的返回值是( )A) 无确切的值B) 形参p中存放的地址值B) 一个临时存储单元的地址D) 形参p自身的地址值(38) 有如下程序段int a=14,b=15,x;char c=’A’;x=(a&&b)&&(c<’B’);执行该程序段后,x的值为( )A) true B) false C) 0 D) 1(39) 有如下说明int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=a;则数值为9的表达式是( )A) *p+9 B) *(p+8) C) *p+=9 D) p+8(40) 若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是( )A) &t[3][2] B) t[3] C) t[1] D) t[2](41) 有如下程序main( ){ char ch[2][5]={“6937”,”8254”}, *p[2];int i,j,s=0;for(i=0;i<2;i++) p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>’\0’; j+=2)s=10*s+p[i][j]-‘0’;printf(“%d\n”,s); }该程序的输出结果是( )A) 69825 B) 63825 C) 6385 D) 693825(42)若有以下的定义:int a[ ]={1,2,3,4,5,6,7,88,9,10}, *p=a;则值为3的表式是( )A) p+=2, *(p++) B) p+=2,*++pC) p+=3, *p++ D) p+=2,++*p(43)假定所有变量均已正确说明,下列程序段运行后x的值是( )a=b=c=0; x=35;if (!a) x--;else if(b) ; if(c) x=3; else x=4;A)34 B)4 C)35 D)3(44)在以下一组运算符中,优先级最高的运算符是( )A)<= B)= C)%D)&&(45)若有以下定义和语句:int w[2][3], (*pw)[3]; pw=w;则对w数组元素非法引用是( )A)*(w[0]+2) =*w[0][2]B)*(pw+1)[2]C)pw[0][0] =*w[0][0]D)*(pw[1]+2) =*w[1][2](46)若有以下程序片段:char str[ ]="ab\n\012\\\"";printf("%d\n", strlen(str));上面程序片段的输出结果是( )A)3 B)4 C)6D)12(47)函数调用strcat(strcpy(str1,str2),str3)的功能是( )A)将串str1复制到串str2中后再连接到串str3之后B)将串str1连接到串str2之后再复制到串str3之后C)将串str2复制到串str1中后再将串str3连接到串str1之后D)将串str2连接到串str1之后再将串str1复制到串str3中(48)以下对C语言函数的有关描述中,正确的是( )A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B) C函数既可以嵌套定义又可以递归调用解释:C函数可以递归调用,但不允许嵌套定义C) 函数必须有返回值,否则不能使用函数D) C程序中有调用关系的所有函数必须放在同一个源程序文件中(49) 以下叙述中不正确的是( )A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值.B) 在C中,调用函数时,实在参数和对应形参在类型上只需赋值兼容.C) 在C中, 外部变量的隐含类别是自动存储类别.D)在C中, 函数形参可以说明为register变量.(50) 以下程序的输出结果是( )#define sub1(char a, char b) {char c; c=a;a=b;b=c;}#define sub2(char *a, char b) {char c; c=*a;*a=b;b=c;}#define sub3(char *a, char *b) {char c; c=*a;*a=*b;*b=c;}main( ){ char a,b;a='A';b='B';sub3(&a,&b);putchar(a); putchar(b);a='A';b='B';sub2(&a,b);putchar(a); putchar(b);a='A';b='B';sub1(a,b);putchar(a);putchar(b);}A) BABBAB B) ABBBBAC) BABABA D) BAABBA(51)错误的转义字符是( )A) '\091'B) '\\' C) '\0' D) '\''(52)设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a, b 和c的值分别是( )A) 2, 1, 2 B) 2, 0, 3 C) 2, 2, 3 D) 2, 1, 3(53) 在C语言中,错误的常数是( )A) 1E+0.0B) 5 C) 0xaf D) 0L( 54) 设int k; 则语句for(k=0; k=1; k++);和语句for(k=0; k==1;k++);执行的次数分别是( )A) 无限和0B) 0和无限C) 都是无限D) 都是0(55)某文件中定义的静态全局变量(或称静态外部变量)其作用域是( )A) 只限某个函数B) 本文件C) 跨文件D)不限制作用域二、程序填空题:(10) 函数pi的功能是根据以下近似公式求π值:(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)现在请你在下面的函数中填空,完成求π的功能。
C语言习题(详细解答)
程序设计基础(C语言版)习题第01章绪论一.选择题1.以下叙述中正确的是________。
A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整【解析】程序设计通常分为问题建模、算法设计、编写代码和编译调试四个阶段。
所以选项A)、B)、C)说法都不完整。
2.以下关于简单程序设计的步骤和顺序的说法中正确的是。
A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构【解析】设计一个能解决实际问题的计算机程序需要经过以下几个过程:①建立模型。
②算法设计:给出解决问题的步骤,即算法。
③算法表达:选择一种表达算法的工具,对算法进行清晰的表达。
④编写程序:选择一种程序设计语言,把以上算法程序化,这称为编写程序。
⑤程序调试:对编写好的程序进行调试,修改程序中的错误。
⑥程序文档编写与程序维护。
综上所述,B)选项是符合上述描述的,其他选项不恰当。
3,叙述中正确的是________。
A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句C)简单C语句必须以分号结束D)C语句必须在一行内写完【解析】函数是C程序的基本组成单位;C语言书写风格很自由,不但一行可以写多个语句,还可以将一个语句写在多行中。
故本题答案为C)。
4.以下叙述中正确的是。
A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中【解析】在C语言中,注释可以加在程序中的任何位置,选项A)错误。
C程序可以分模块写在不同的文件中,编译时再将其组合在一起,选项D)错误。
C语言程序设计习题(含答案)
C语言程序设计习题(含答案) C语言程序设计习题(含答案)C语言是一种常用的编程语言,被广泛应用于计算机科学和软件开发领域。
为了帮助学习者更好地掌握C语言的编程技巧,本文提供一些常见的C语言程序设计习题及其答案。
通过完成这些习题,学习者可以锻炼编程思维,加深对C语言的理解,并提高编程能力。
习题一:求两个整数的和题目描述:编写一个程序,计算两个整数的和并输出结果。
解答:```C#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```习题二:计算圆的周长和面积题目描述:编写一个程序,根据用户输入的半径,计算圆的周长和面积,并输出结果。
解答:```C#include <stdio.h>#define PI 3.14159int main() {double radius, circumference, area;printf("请输入圆的半径:");scanf("%lf", &radius);circumference = 2 * PI * radius;area = PI * radius * radius;printf("圆的周长为:%lf\n", circumference);printf("圆的面积为:%lf\n", area);return 0;}```习题三:判断一个数是否为素数题目描述:编写一个程序,判断用户输入的一个正整数是否为素数。
解答:```C#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个正整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}```习题四:计算两个矩阵的乘积题目描述:编写一个程序,计算两个3x3的矩阵的乘积并输出结果。
C语言基础练习题(含答案)
第一章C语言基础知识1.1 选择题1. 以下不是C语言的特点的是()。
BA、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2. 下列字符序列中,不可用作C语言标识符的是()。
BA.abc123 B. C._123_ D._ok 3. 正确的C语言标识符是()。
AA._buy_2 B.2_buy C._buy D.buy4. 请选出可用作C语言用户标识符的一组标识符()。
BA.void B.a3_b3 C.For D.2a define _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。
BA.\\ B.\0xAA C.\t D.\06. 不属于C语言关键字的是()。
dA.int B.break C.while D.character 7. 是C语言提供的合法关键字的是()。
bA.Float B.signed C.integer D.Char8. 以下不能定义为用户标示符的是()。
bA.scanf B.Void C._3com_ D.int9. 一个C程序是由()。
bA.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10. C语言程序的基本单位是()。
cA.程序行 B.语句 C.函数 D.字符11. 下列说法中,错误的是()。
aA.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12. 以下说法中正确的是()。
cA.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分13. C编译程序是()。
计算机c语言习题(含答案)
1. 有如下程序main(){ int n[5]={0,0,0},i,k=2;for(i=0;i < k;i++) n[i]=n[i]+1;printf("%d\n",n[k]);}该程序的输出结果是 DA、不确定的值B、2C、1D、02. 执行下面的程序后,a的值为__B___main(){ int a,b;for (a=1,b=1;a < 100;a++){if (b > =20) break;if (b%3==1){ b+=3; continue; }b-=5;}}A、7B、8C、9D、103. 下述程序的输出结果是( B )。
#includemain(){int k=0,m=0;int i,j;for(i_O;i<2;i++){for(j:0;j<3;j++)k++:k一=j;}m=i+j;printf(”k=%d,m=%d”,k,m);}A、k=0,m=3B、k=O,m=5C、D)k=l,m=3D、D)k=l,m=54. 以下程序段____C__x=-1;do{x=x*x;}while(!x);A、是死循环B、循环执行二次C、循环执行一次D、有语法错误5. 有如下程序 Bmain(){ int n=9;while(n > 6) {n--;printf("%d",n);}}该程序段的输出结果是A、987B、876C、8765D、98766. 有以下程序main(){ int i, j;for(j=10;j < 11;j++){ for(i=9;i < j; i++)if (!(j%i))break;if(i=j-1)printf("%d",j);}}输出结果是 BA、11B、10C、9D、10 117. 以下程序的输出结果是 Amain( ){ int i;for(i=1;i < 6;i++){ if(i%2){printf("#");continue;}printf("*");}printf("\n");A、#*#*#B、#####C、*****D、*#*#*8. 以下叙述正确的是( D )A、do-while语句构成的循环不能用其它语句构成的循环来代替B、do-while语句构成的循环只能用break语句退出C、用do-while语句构成的循环,在while后的表达式为非零时结束循环。
c语言程序基础练习题500道(附答案)
1.下列四组选项中,均不是C语言关健字的选项是( A )。
A) define B) gect C) include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x3.下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f' '\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。
A)'abc' B)"12'12" C)"0" D)" "5.以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)Main D)PRINT6.C语言提供的合法关键字是( D )。
A) swithB) cherC) CaseD)default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。
A) true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092';则该语句( b )A)使s的值包含一个字符B)定义不合法,s的值不确定C)使s的值包含4个字符D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。
C语言综合习题及答案
C语言综合习题及答案C语言练习题一、选择题1. 一个完整的C源程序是【B 】。
A)要由一个主函数或一个以上的非主函数构成B)由一个且仅由一个主函数和零个以上的非主函数构成C)要由一个主函数和一个以上的非主函数构成D)由一个且只有一个主函数或多个非主函数构成2. 以下关于函数的叙述中正确的是【C】。
A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以定义任意一个函数3. 以下关于函数的叙述中不正确的是【B】。
A)C程序是函数的集合,包括标准库函数和用户自定义函数B)在C语言程序中,被调用的函数必须在main 函数中定义C)在C语言程序中,函数的定义不能嵌套D)在C语言程序中,函数的调用可以嵌套4. 在一个C程序中,【B 】。
A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置5.C程序的执行是从【A 】开始的。
A)主函数B)子函数C)从程序第一行D)printf()函数6.以下选项中不合法的标识符是【C 】A)print B)FOR C)&a D)_007.以下选项中可作为C语言合法常量的是【A】A)-80 B)-080 C)-8e1.0 D)-80.0e8.以下选项中不属于字符常量的是【B】A)′C′ B)"C" C)′\xCC′ D) ′\072′9. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】A)float B)longC)int D)double10. 以下关于函数叙述中,错误的是【D】。
A)函数未被调用时,系统将不为形参分配内存单元B)实参与形参的个数应相等,且实参与形参的类型必须对应一致C)当形参是变量时,实参可以是常量、变量或表达式D)形参可以是常量、变量或表达式11. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是【D】。
C语言练习题及参考答案
练习题1及参考答案1. 单项选择题(1)以下并非C语言的特点的是????? 。
A.? C语言简洁和紧凑B. 能够编制出功能复杂的程序C.? C语言可以直接对硬件进行操作D.? C语言移植性好【答】B(2)一个C程序的执行是从????? 。
A.? main()函数开始,直到main()函数结束B. 第一个函数开始,直到最后一个函数结束C. 第一个语句开始,直到最后一个语句结束D.? main()函数开始,直到最后一个函数结束【答】A(3)在C程序中,main()的位置????? 。
A. 必须作为第一个函数B. 必须作为最后一个函数C. 可以任意D. 必须放在它所调用的函数之后【答】C(4)一个C程序是由????? 。
A. 一个主程序和若干子程序组成B. 一个或多个函数组成C. 若干过程组成D. 若干子程序组成【答】B(5)下列说法正确的是????? 。
A. 在执行C程序时不是从main()函数开始的B.? C程序书写格式限制严格,一行内必须写一个语句C.? C程序书写格式比较自由,一个语句可以分行写在多行上D.? C程序书写格式严格要求一行内必须写一个语句,并要求行号【答】C2. 填空题(1)一个C源程序至少有?? ①?? 个main()函数和?? ②?? 个其他函数。
【答】①一? ②若干(2)任何C语句必须以????? 结束。
【答】分号(3)C语言源程序的基本单位是????? 。
【答】函数(4)C编译程序的功能是????? 。
【答】将C源程序编译成目标代码练习题2及参考答案1. 单项选择题(1)以下字符串为标识符的是????? 。
A. _MY????????? ??????B. 2_2222?????? ?????? ??????C. short?????? ?????? ??????D. LINE 5【答】A(2)下列符号可以作为变量名的是????? 。
A. +a????? ?????? ??????B. *p?????? ?????? ?????? ??????C. _DAY????? ?????? ??????D. next day【答】C(3)设c是字符变量,则以下表达式正确的是????? 。
C语言习题答案
习题答案习题1(参考答案)1.程序与算法的概念及二者的区别是什么?程序:为了实现特定目标或解决特定问题而用计算机语言偏写的指令序列,它由算法和数据结构组成。
算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。
通俗地讲,就是计算机解题的步骤。
算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达。
2.简述程序设计语言发展的过程程序设计语言经过最初的机器代码到今天接近自然语言的表达,经过了四代的演变。
一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,面对象的编程语言为第四代。
3.简述高级程序设计语言中面向过程与面向对象的概念。
“面向过程”是一种以过程为中心的编程思想。
首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候依次调用函数即可。
一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。
“面向对象”是一种以事物为中心的编程思想。
面向对象的方法主要是将事物对象化,对象包括属性与行为。
面向过程与面向对象的区别:在面向过程的程序设计中,程序员把精力放在计算机具体执行操作的过程上,编程关注的是如何使用函数去实现既定的功能;而在面向对象的程序设计中,技术人员将注意力集中在对象上,把对象看做程序运行时的基本成分。
编程关注的是如何把相关的功能(包括函数和数据)有组织地捆绑到一个对象身上。
4.C语言程序的特点是什么?(1)C语言非常紧凑、简洁,使用方便、灵活,有32个关键字,有9种流程控制语句。
(2)C语言运算符丰富,共有45个标准运算符,具有很强的表达式功能,同一功能表达式往往可以采用多种形式来实现。
(3)数据类型丰富。
C语言的数据类型有整型、实型、字符型、数组类型、结构类型、共用类型和指针类型,而且还可以用它们来组成更复杂的数据结构,加之C语言提供了功能强大的控制结构,因而使用C语言能非常方便地进行结构化和模块化程序设计,适合于大型程序的编写、调试。
C语言经典练习题50道(附答案)
1.**打印Hello World**练习:编写一个C程序,打印"Hello,World!"到屏幕上。
#include<stdio.h>int main(){printf("Hello,World!\n");return0;}2.**计算两个整数的和**练习:编写一个程序,接受两个整数,然后计算它们的和并打印结果。
#include<stdio.h>int main(){int a=5,b=7;int sum=a+b;printf("Sum:%d\n",sum);return0;}3.**判断奇数或偶数**练习:编写一个程序,接受一个整数,然后判断它是否为奇数或偶数。
#include<stdio.h>int main(){int num=10;if(num%2==0){printf("%d is even.\n",num);}else{printf("%d is odd.\n",num);}return0;}4.**计算阶乘**练习:编写一个程序,计算给定整数的阶乘。
#include<stdio.h>int main(){int n=5;int factorial=1;for(int i=1;i<=n;i++){factorial*=i;}printf("Factorial of%d is%d\n",n,factorial);return0;}5.**反转字符串**练习:编写一个程序,接受一个字符串,然后反转它并打印出来。
#include<stdio.h>#include<string.h>int main(){char str[]="Hello,World!";int len=strlen(str);for(int i=len-1;i>=0;i--){printf("%c",str[i]);}printf("\n");return0;}6.**检查素数**练习:编写一个程序,判断一个整数是否为素数。
c语言练习题及参考答案
5.
设说明为 int a[3]={1,2}, *p=a; 则*p与*(p+2)的值分别是【 A) 1和0 B) 0和1 C) 1和2
6.
设说明为 int a=10; 执行语句 a*=1+2+3; 后a的值是【 A) 15 B) 24 C) 33 】 。
7.
为表示关系x≥y≥z,应使用C语言表达式【 A) (x>=y>=z) B) (x>=y)AND(y>=z)
1
printf("a1+a2+a3=%d\n", a1+a2+a3); D) 不确定
10. putchar函数可以向终端输出一个【 A) 整型变量值 B) 实型变量值
】 。 C) 字符串 】 D) 字符或字符变量
11. 执行下面程序段,屏幕输出的值是【 int x; printf("%d\n", (x=3*5, x+5)); A) 10 B) 15
D) 11 】 。
18. 设说明为 char str[6]={'a', 'b', '\0', 'c', 'd', '\0'}; 执行printf("%s", str); 后输出的结果是【 A) abcd B) abc C) ab printf("%d D) ad
19. 定义如下变量和数组,则语句 for(i=0; i<3; i++) int i; int x[3][3]={1, 2, 3, 4, 5, 6, 7, 8, 9}; A) 1 5 9 B) 1 4 7
B) 继续执行break语句之后的循环体各语句 D) 终止程序运行 】 。 D) 1 】 。
C语言练习题(带详解答案)
一、编程题1.输入2个整数,求两数的平方和并输出。
#include<stdio.h>intmain(void){intta,b,s;printf("pleaseinputa,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("theresultis%d\n",s);return0;}2.输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
#include<stdio.h>#definePI3.14intmain(void){doubler,area,girth;printf("pleaseinputr:\n");scanf("%lf",&r);if(r>=0){area=PI*r*r;girth=2*PI*r;printf("theareais%.2f\n",area);printf("thegirthis%.2f\n",girth);}elseprintf("Inputerror!\n");return0;}3、已知函数y=f(x),编程实现输入一个x值,输出y值。
2x+1(x<0)y=0(x=0)2x-1(x>0)#include<stdio.h>voidmain(){intx,y;scanf(“%d”,&x);if(x<0)y=2*x+1;elseif(x>0)y=2*x-1;elsey=0;printf(“%d”,y);}4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥,90等级为A;80≤score<9,0等级为B;70≤score<8,0等级为C;60≤score<7,0等级为D;score<60,等级为E。
C语言练习题及答案
C语言练习题及答案综合强化练习一一、选择题(每题1分,共40分)1、以下叙述正确的是( )A)C语言总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main函数中定义C)C程序的执行总是从main函数开始执行的D)C程序中的main函数必须放在程序的开始部分2、下列合法的用户标识符为( )A)_4sum B) static C) 1max D) #dtotal3、ch为字符型变量,则下面赋值语句正确的为( )。
A)ch="ABC" B) ch="A" C) ch= a D) ch=674、C语言中整形常量有哪几种形式( )A) 十进制、八进制、十六进制B) 二进制、十进制、八进制、十六进制C) 二进制、八进制、十六进制D) 二进制、十进制5、字符串" China "在内存中占用的字节数是( )A) 1 B) 2 C) 5 D) 66、int x,y; x=7/2;y=7/2.0;则x的值为( )A) 3.500000 3 B) 3 3.500000C) 3.500000 3.500000 D)3 37、下面程序int x=0x2B; printf("%d",x);的输出结果为( )A) 2B B) 0x2B C) 43 D) 448、实型常量用指数形式表示,下列哪一项不是合法的( )A) 3.65e3 B)0.356E3 C)356e3 D)3.56e3.09、设有语句int a=3;则执行了语句a-= a+=a*a;后变量a的值是( )A)0 B)3 C) -9 D) -310、下列字符中,错误的转义字符是( )A)'\085' B) '\\' C) '\0' D) '\n '11、下面程序的输出结果是( )int a=2;if(a=5) a=a+2;printf("%d ",a);A) 2 B) 4 C) 5 D)712、下列程序段的循环次数是( )int k=0;while(k= =0) printf("%d",k);k--; printf ("\n");A) 无限次B) 0 次C) 1次D)2次13、下列说法正确的是( )A) 在循环体中可以用break语句结束本次循环B) 在循环体中可以用continue语句结束本次循环C) break语句仅能使用在switch结构中D) 可以使用continue语句跳出switch结构14、以下正确的函数形式是()。
C语言练习题(带详解答案),DOC
目录一、选择题 (2)二、读程序 (11)基本输入输出及流程控制 (11)数组 (24)函数 (34)指针 (39)结构体 (44)三、程序填空 (46)四、编程题 (50)一、选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从 C开始执行。
A) 程序中第一条可执行语句 B) 程序中第一个函数C) 程序中的main函数 D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。
A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是( B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A) %x B) a+b C) a123 D) 123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while 为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单选题1、能将高级语言源程序转换成目标程序的是( C )。
编译程序的基本功能是把源程序翻译成目标程序 A)调试程序B)解释程序C)编译程序D)编辑程序 2、设有以下定义:int x=10,y=3,z;则语句:printf(“%d”,z=(x%y,x/y ));的结果是( D )。
A)1 B)0 C)4 D)33、若已定义x 和y 为整型,则表达式:x=1,y=x+3/2的值是( B )。
P56 A)1 B)2C)2.0D)2.5 4、C语言中 ( B )。
P115 A)不能使用 do - while 语句构成循环。
B)do-while 语句, 当 while 语句中的表达式值为零时结束循环。
C)do-while 语句, 当 while 语句中的表达式值为非零时结束循环 D)do-while 语句必须用 break 语句才能退出循环5、设有定义 int a =3;,则执行语句 a+ = a-=a*a 后,变量 a 的值是( C ).P64(a-a*a a = 3-3*3 a = -6 a = a + a a = -6 + (-6) a=-12)A)3 B)0 C)-12 D)9 6、以下程序的输出结果是 ( C )。
p93 # include <stdio.h> main( ) {int a,b,d=241; a=d/100%9; b=(-1)&&(-1);printf ("%d,%d\n",a,b);}A)2 1 B)1,-1 C)2,1 D)2 -17、以下程序的输出结果是 ( D )。
#include <stdio.h> #include <string.h> main( ){char str[12]={'s','t','r','i','n','g'}; printf("%d\n",strlen(str)); }求字符串的长度,strlen( )的参数必须是char*A)12B)7C)118、以下的 for 循环( A )。
for (x=0,y=0;(y!=123)&&(x<4);x++); A)执行4次 B)是无限循环 C)执行3次 D)循环次数不定9、以下程序段的输出结果是( A )char a[]=”Basic”; char *p=a; printf(“%s”,p);A)BasicB)BC)asic10、以下说法中正确的是( C )。
A)C 语言程序总是从第一个定义的B)在C 语言程序中,要调用的函数必须在 main( ) 函数中定义C)C 语言程序总是从 main( ) 函数开始执行D)C 语言程序中的 main( ) 函数必须放在程序的开始部分 11、下述对 C 语言字符数组的描述中错误的是( C ) A)字符数组可以存放字符串B)字符数组中的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D)不可以用关系运算符对字符数组中的字符串进行比较12、C语言中最简单的数据类型包括( B ) A)整型、实型、逻辑型B)整型、实型、字符型 C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型 13、阅读程序: #include<stdio.h> #define SUB(X,Y) (X)*Y main( ) {int a=3,b=4;printf("%d\n",SUB(a++,b++));} 程序的输出结果是 ( B )A)15B)12 C)16D)2014、为表示关系x ≥y ≥z 应使用C 语言表达式( A )A)(x>=y )&&(y>=z) B)( x>=y )and(y>=z)C) (x>=y>=z) D)( x>=y )&( x>=y ) 15、如下程序的运行结果是( A ) Main() {int n=0; while(n++<=1)printf(“%3d”,n); printf(“%3d \n”,n); }A)1 2 3 B)3 2 1 C)0 1 2 D )2 1 0 16、设有如下定义:char *aa[2]={“abcd”,”ABCD”}; 则以下说法中正确的是( D )A)aa 数组元素的值分别是”abcd”和”ABCD” B)aa 是指针变量,它指向含有两个数组元素的字符型一维数组C)aa 数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D)aa 数组的两个元素中各自存放了字符’a’和’A’的地址。
17、设有如下定义:struct sk{int a;float b;}data,*p;若有 p=&data;,则对 data 中的 a 域的正确引用是(p->a )( A )A)(*p).a B)(*p).data.a C)p.data.a D)p->data.a18、设有说明 int (*ptr)[M]; 其中的标识符 ptr 是( C ) A)M 个指向整形变量的指针 B)指向 M 个整形变量的函数指针C)一个指向具有 M 个整形元素的一维数组的指针D)具有 M 个指针元素的一维指针数组,每个元素都只能指向整形变量19、阅读程序,程序的输出结果为( C )。
int x=3; do{printf(“%3d”,x -=2); }while(!(--x));A)1 B)30 C)1 -2D)死循环20、设有10个数据进行冒泡排序,最少进行的比较次数为( C )。
A)0 B)10 C)9 D)121、设有语句 char a=’\n’; ,则变量 a ( A )。
A)包含1个字符B)包含2个字符C)包含3个字符 D)说明不合法 22、若有定义:double x,y;则表达式:x=1,y=x+3/2的值是( C )。
A)1 B)2C)2.0D)2.523、有以下程序:(注意:ch[0] 在低字节,ch[1] 在高字节。
)# include< stdio.h>union pw{int i ;char ch[2];}a;main( ){a.ch[0]=0 ;a.ch[1]=13 ; printf("%d\n",a.i);}程序的输出结果是( C )。
A)13B)14C)3328 D)32824、以下程序的输出结果是 ( B )。
#include <string.h> main( ){char str[12]={'a','b','c','d','f','g',’f’}; printf("%d\n",strlen(str)); }A)12B)7C)11 D)6 25、设有以下语句:struct st{int n;struct st *next;};static struct sta[3]={{5,&a[1]},{7,&a[2]},{9,'\0'}},*p; p=&a[0]; 则表达式( B )的值是6。
A)p++->nB)++(p->n)C)(*p).n++ D)p->n++ 26、对于程序段 float f1(int a) {int b ;……} main( ) { int m,n; m=f1(n);…… }char f2(int x,int y) { int a;…… }变量m,n 的作用范围是( B ) (A )整个程序段 (B )main 函数 (C )main 函数和f2函数 (D )mian 函数和f1函数 27、若p1、p2都是指向整型的指针,p1已经指向数量x ,要使p2也指向x ,正确的是( A )(A )p2=p1; (B )p2=**p1; (C )p2=&p1; (D )p2=*p1;28、算术运算符,赋值运算符和关系运算符的运算优先级按从高到低依次为( B )(A )算术运算、赋值运算、关系运算 (B )算术运算、关系运算、赋值运算 (C )关系运算、赋值运算、算术运算(D )关系运算、算术运算、赋值运算 29、C语言中,运算对象必须是整型数的运算符是( A )A)%B)/C)% 和30、若数组定义为int a[10];则下列哪个表达式是错误的?( A )(A )*a (B )a (C )&a (D )++a 31、表达式10%2值是( A ) (A )0 (B )1 (C )5 (D )5.032、设有说明 int (*ptr)[M]; 其中的标识符 ptr 是( C )A)M 个指向整形变量的指针 B)指向 M 个整形变量的函数指针C)一个指向具有 M 个整形元素的一维数组的指针D)具有 M 个指针元素的一维指针数组,每个元素都只能指向整形变量33、初始化一维数组a 正确的语句是( C ) (A )int a[10]=(0,0,0,0,0); (B )int a[10]={ }; (C )int a[ ]={10} ; (D )int a[10]={[10*1]}; 34、下列程序执行后输出的结果是 ( A )int d = 1 ;fun ( int p ) { int d = 5 ; d + = p + + ;printf( " %d " , d ) ;} main( ) {int a = 3 ; fun ( a ) ; d + = a + + ;printf( " %d \ n " , d ) ; }A)8 4B)9 6C)9 4 D)8 5 35、函数调用语句“f((e1,e2),(e3,e4,e5))”中参数的个数是( B )(A )1 (B )2 (C )3 (D )536、执行下列语句中,sum 变量的值是( B ) int I,sum=0;for(i=0;i<10;i++,sum+=i);(A )45 (B )55 (C )0 (D )编译错误 37、以下c 语言函数声明中,不正确的是( C ) (A ) void fun (int x, int y); (B ) fun (int x, int y);(C ) int fun (int x,y); (D ) char *fun (char *s);38、以下关于typedef 的叙述中错误的是 ( A ) (A ) 用typedef 可以增加新的类型(B ) 用typedef 可以定义各种类型名,但不能用来定义变量(C ) 用typedef 只是将已有的类型用新的标识符来代表 (D ) 使用typedef 有利于程序的通用和移植39、 假设指针p 已经指向某个整型变量x ,则*p 相当于( C )(A ) &x (B ) &p (C ) x (D ) *x40、组成C 语言程序的是( B ) (A )过程 (B )函数(C )子程序 (D )主程序和子程序41、不用第三个变量,将变量a 和b 的值进行互换的操作是( B )(A )a+=b; b-=a; a-=b; (B )a+=b; b=a-b; a-=b; (C )b-=a; a-=b; a-=b; (D )b-=a; a=b-a; a+=b; 42、对do-while 语言错误的说法是(C )(A )可构成多重循环结构 (B )循环次数不可能为0(C )循环次数可能为0 (D )先执行后判断 43、函数调用时,若实参是一个数组名,则向形参传递的是(C )(A )数组的长度 (B )数组的每一个元素的地址 (C )数组的首地址(D )数组元素的值二、填空题1、下面函数要求用来求出两个整数之和,并通过形参传回两数相加之和值。