c语言经典2
- 格式:doc
- 大小:90.00 KB
- 文档页数:8
计算机二级c语言经典练习题及解析答案计算机二级c语言经典练习题及解析答案一、单选题1. C语言中的三大基本数据类型包括( B )A.整型、实型、逻辑型B.整型、实型、字符型C.整型、逻辑型、字符型D.整型、实型、逻辑型、数组型2. 在C语言中,以下合法的字符常量是( c )A. '\048'B. 'ab'C. '\43'D. "\0"3.设x 为 int 型变量,执行下列语句: x=10; x+=x-=x-x; 则x的值为 ( B )A. 15B. 20C. 25D. 304. 定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i<3;i++) printf("%d",x[i][2-i]); 的输出结果是( C )A. 1 4 7B. 1 5 9C. 3 5 7D. 3 6 95.逗号表达式(a=3*5,a*4),a+15的值是( b )A.15B. 30D. 756. .以下程序的输出结果是( c )。
main( ){ int x=10,y=11;printf("%d,%d\n",x--,--y);}A. 11,11B. 10,11C. 10, 10D.11,107.若一个外部变量的定义形式为static int x ; 其中static的作用是( d )A.将变量存放在静态存储区,使x的值可以永久保留B.使变量x可以由系统自动初始化C.使x的值可以永久保留D.使x只能在本文件内引用8.有如下变量说明:int k=2;则下面的循环共执行多少( d )次while (k!=0) {printf("%d",k);k--;}A.无限多次 B.0次 C.1次 D. 2次9.设有变量说明:int a=7,b=8;那么语句:printf("%d,%d\n",(a+b,a),(b,a+b));的输出应该是( a )A. 7,15B. 8,15C. 15,7D.15,810.若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是( b )A. p+1C. a+1D. ++p11. C语言变量名中不能使用的字符是( d )A. 数字B. 字母C. 下划线D. 关键字12.以下变量定义中合法的是( a )A.short a=2.1e-1;B. double b=1+5e0.5;C. long do=0xffe ;D. float 3_end=1-e3;13.若有说明语句char ch1=′\x79′;则ch1( c )A.包含4个字符B.包含3个字符C. 包含2个字符D.包含1个字符14.C语言中的函数( b )A. 可以嵌套定义B.嵌套调用和递归调用均可C. 不可以嵌套调用D. 可以嵌套调用但不可以递归调用15. 设整形变量a=12;则执行完语句a+=a-=a*a后a的值为( c )A. 552B. 264C. -264D. 14416.设a=1,b=2,c=3,d=4,则表达式:a>b?a:cA.1 B.2 C.3 D.417.若有说明语句:int b[][4]={ 3,1,2,5,7,6,4}; 则b数组的行数为( b )A. 3B. 2C.无确定值D. 118. 若有定义:char c[10];从键盘输入“LiFang”,则正确的函数引用是( c )A. scanf(″%c″,&c[10]);B. gets(c);C. scanf(″%s″,&c);D. gets(c[10]);19. 两个基类型相同的指针变量之间,不能进行的运算是( c )A. <B. =C. +D.-20. 下面程序段执行结果是( b )int i=5,k; k=(++i)+(++i)+(i++); printf("%d,%d",k,i);A. 24,8B. 21,8C. 21,7D. 24,721.以下选项中属于C语言的数据类型是( b )。
计算机等级考试⼆级C语⾔笔试经典习题101-200 101、执⾏语句: for (i=1;i++、C、2 102、指出下⾯正确的输⼊语句是( ) A:scanf("a=b=%d",&a,&b) B:scanf("a=%d,b=%f",&a,&b) C:scanf("%3c",c)D:scanf("%5、2f",&a)、B、2 103、执⾏下⾯的程序后,a的值为 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) 7 B) 8 C) 9 D) 10、B、2 104、在执⾏以下程序时,如果从键盘上输⼊:ABCdef〈回车〉,则输出为 A)ABCdef B)abcdef C)abc D)DEF # include main() { chsr ch; while((ch=getchar())!='\n') { if(ch>='A'&& ch<='Z')ch=ch+32; 、C、2 105、整型变量x和y的值相等、且为⾮0值,则以下选项中,结果为零的表达式是 A) x || y B) x | y C) x & y D) x ^ y、D、2 106、在以下定义中,正确的说明语句为____ A) int a['a'] B)int a[3,4] C)int a[ ][ ] D)int *a[10]、D、2 107、执⾏下列程序时输⼊:123456789,输出结果是 A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456 main() { char s[100]; int c, i; scanf("%c",&c); scanf("%d",&i); scanf("%s",s); printf("%c,%d,%s \n",c,i,s); }、D、2 108、执⾏下⾯程序⽚段的结果是 int x=23; do { printf("%2d",x--);} while(!x); A) 打印出321 B) 打印出23 C) 不打印任何内容D) 陷⼊死循环、B、2 109、在说明语句:int *f();中,标识符f代表的是____ A) ⼀个⽤于指向整型数据的指针变量 B) ⼀个⽤于指向⼀维数组的⾏指针 C) ⼀个⽤于指向函数的指针变量 D) ⼀个返回值为指针型的函数名、D、2 110、在下列选项中,不正确的赋值语句是____ A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;、D、2 111、在C语⾔中,若需⼀变量只在本⽂件中所有函数使⽤,则该变量的存储类别是________ A、extern B、register C、auto D、static、D、2 112、在C语⾔程序中,当do-while语句构成的循环中的条件为______时,结束循环。
c语言18个经典程序1. Hello, World! - 这是经典的C语言第一个程序,用于输出"Hello, World!"。
2. 求两个整数的和 - 用户输入两个整数,程序将计算并输出它们的和。
3. 判断一个数是奇数还是偶数 - 用户输入一个整数,程序将判断并输出该数是奇数还是偶数。
4. 求一个数的平方 - 用户输入一个数,程序将计算并输出该数的平方。
5. 求两个数的最大公约数 - 用户输入两个整数,程序将计算并输出它们的最大公约数。
6. 判断一个数是否为质数 - 用户输入一个正整数,程序将判断并输出该数是否为质数。
7. 求一个数的阶乘 - 用户输入一个正整数,程序将计算并输出该数的阶乘。
8. 生成斐波那契数列 - 用户输入一个正整数n,程序将生成并输出前n个斐波那契数。
9. 判断一个数是否为完全数 - 用户输入一个正整数,程序将判断并输出该数是否为完全数。
10. 判断一个字符串是否为回文字符串 - 用户输入一个字符串,程序将判断并输出该字符串是否为回文字符串。
11. 求一个数的倒数 - 用户输入一个非零实数,程序将计算并输出该数的倒数。
12. 求两个数的最小公倍数 - 用户输入两个正整数,程序将计算并输出它们的最小公倍数。
13. 判断一个年份是否为闰年 - 用户输入一个年份,程序将判断并输出该年份是否为闰年。
14. 生成九九乘法表 - 程序将生成并输出九九乘法表。
15. 判断一个数是否为负数、零或正数 - 用户输入一个实数,程序将判断并输出该数是负数、零还是正数。
16. 判断一个数是否为偶数的平方 - 用户输入一个整数,程序将判断并输出该数是否为偶数的平方。
17. 判断一个数是否为回文数 - 用户输入一个正整数,程序将判断并输出该数是否为回文数。
18. 判断一个字符串是否为回文句子 - 用户输入一个句子,程序将判断并输出该句子是否为回文句子。
这些经典的C语言程序涵盖了基本的输入输出、数学运算、条件判断、循环、字符串处理等方面的知识点。
考研程序设计复习题1.以下程序的输出结果是______。
main(){ int a=0;a+=(a=8);printf("%d\n",a);}答案:16知识点:赋值表达式2.若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是______。
c=(a-=(b-5));c=(a % 11)+(b=3);答案:3知识点:赋值表达式3.以下程序运行后的了输出结果是______。
main(){ int a=1,b=2,c=3;if(c=a) printf("%d\n",c);else printf("%d\n",b);}答案:1知识点:赋值表达式4.若有语句int i=-19, j=i%4;printf("%d\n",j);则输出结果是______。
答案:-3知识点:算术表达式5.设有以下程序:main(){ int n1,n2;scanf("%d",&n2);while(n2!=0);{ n1=n2 % 10n2=n2/10;printf("%d",n1);}}程序运行后,如果从键盘上输入1298,则输出结果为______。
答案:8921知识点:算术表达式6.下面程序的输出是______。
unsigned fun6( unsigned num){ unsigned k=1;do {k*=num%10;num/=10;}while(num);return(k);}main(){ unsigned n=26;printf("%d\n", fun6(n));}答案:12知识点:算术表达式7.设y 是int型变量,请写出判断y为奇数的关系表达式______。
答案:y%2知识点:算术表达式8.下列程序的输出结果是16.00,请填空。
main(){ int a=9,b=2float x=______,y=1.1,z;z=a/2+b*x/y+1/2;printf("%5.2f\n",z);}答案:6.6知识点:算术表达式9.以下程序运行后的输出结果是______。
2020年全国计算机等级考试二级C语言必考知识点总结【完美版】C语言最重要的知识点总体上必须清楚的:1)程序结构是三种:顺序结构、选择结构(分支结构)、循环结构。
2)读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。
3)计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就是他的地址.4)bit是位是指为或者1。
byte是指字节,一个字节=八个位.概念常考到的:1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、define PI 3.;这个写法是错误的,一定不能出现分号。
3、每个C语言程序中main函数是有且只有一个。
4、在函数中不可以再定义函数。
5、算法:可以没有输入,但是一定要有输出。
6、break可用于循环结构和switch语句。
7、逗号运算符的级别最低,赋值的级别倒数第二。
第一章C语言的基础知识第一节、对C语言的根蒂根基熟悉1、C语言编写的程序称为源程序,又称为编译单元。
2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。
3、一个C语言程序有且只有一个main函数,是程序运转的出发点。
第二节、熟悉vc++1、VC是软件,用来运行写的C语言程序。
2、每一个C语言程序写完后,都是先编译,后链接,末了运转。
(.c---.obj---.exe)这个进程中注意.c和.obj文件时没法运转的,只有.exe文件才可以运转。
(常考!)第三节、标识符1、标识符(必考内容):合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
而且第一个必须为字母或则是下划线。
第一个为数字就错了2、标识符分为枢纽字、预定义标识符、用户标识符。
枢纽字:不可以作为用户标识标记。
main define scanf printf都不是枢纽字。
利诱你的地方If是可以做为用户标识符。
【黑马程序员】C语言程序设计学习经典实例100题(第二部分)题目三十一:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if 语句判断第二个字母。
2.程序源代码:#includevoid main(){char letter;printf("please input the first letter of someday\n");while ((letter=getch())!='y')/*当所按字母为y时才结束*/{ switch (letter){case 's':printf("please input second letter\n");if((letter=getch())=='a')printf("saturday\n");else if ((letter=getch())=='u')printf("sunday\n");else printf("data error\n");break;case 'f':printf("friday\n");break;case 'm':printf("monday\n");break;case 't':printf("please input second letter\n");if((letter=getch())=='u')printf("tuesday\n");else if ((letter=getch())=='h')printf("thursday\n");else printf("data error\n");break;case 'w':printf("wednesday\n");break;default: printf("data error\n");}}}题目三十二:press any key to change color, do you want to try it. please hurry up!程序源代码:#includevoid main(void){int color;for (color = 0; color < 8; color++){textbackground(color);/*设置文本的背景颜色*/ cprintf("this is color %d\r\n", color); cprintf("press any key to continue\r\n"); getch();/*输入字符看不见*/}}题目三十三:学习gotoxy()与clrscr()函数程序源代码:#includevoid main(void){clrscr();/*清屏函数*/textbackground(2);gotoxy(1, 5);/*定位函数*/cprintf("output at row 5 column 1\n"); textbackground(3);gotoxy(20, 10);cprintf("output at row 10 column 20\n");}题目三十四:练习函数调用程序源代码:#includevoid hello_world(void){printf("hello, world!\n");}void three_hellos(void){int counter;for (counter = 1; counter <= 3; counter++) hello_world();/*调用此函数*/}void main(void){three_hellos();/*调用此函数*/}题目三十五:文本颜色设置程序源代码:#includevoid main(void){int color;for (color = 1; color < 16; color++){textcolor(color);/*设置文本颜色*/cprintf("this is color %d\r\n", color); }textcolor(128 + 15);cprintf("this is blinking\r\n");}题目三十六:求100之内的素数程序源代码:#include#include "math.h"#define n 101main(){int i,j,line,a[n];for(i=2;ifor(i=2;i for(j=i+1;j{if(a[i]!=0&&a[j]!=0)if(a[j]%a[i]==0)a[j]=0;}printf("\n");for(i=2,line=0;i{if(a[i]!=0){printf("%5d",a[i]);line++;}if(line==10){printf("\n");line=0;}}}题目三十七:对10个数进行排序1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。
c语言经典例子C语言是一种非常经典且广泛使用的编程语言,下面我将列举十个典型的C语言例子,并给出详细的描述。
1. Hello World 程序这是C语言中最简单的程序,它能在屏幕上输出"Hello World"。
代码如下:```c#include <stdio.h>int main() {printf("Hello World\n");return 0;}```2. 计算两个数的和这个例子展示了如何从用户输入中获取数据,并进行简单的数学运算。
代码如下:```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两个数的和为:%d\n", sum);return 0;}```3. 判断一个数是奇数还是偶数这个例子演示了如何使用条件语句来判断一个数是奇数还是偶数。
代码如下:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("这是一个偶数\n");} else {printf("这是一个奇数\n");}return 0;}```4. 计算一个数的阶乘这个例子展示了如何使用循环来计算一个数的阶乘。
代码如下:```c#include <stdio.h>int main() {int num, factorial = 1;printf("请输入一个整数:");scanf("%d", &num);for (int i = 1; i <= num; i++) {factorial *= i;}printf("%d的阶乘为:%d\n", num, factorial);return 0;}```5. 判断一个数是否为素数这个例子演示了如何使用循环和条件语句来判断一个数是否为素数。
【1.1】以下不正确的C语言标识符是____。
A) intB) a_1_2C) ab1exeD) _x【1.2】以下是正确的C语言标识符是____。
A) #defineB) _123C) %dD) \n【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。
A) print B) i\am C) Pxq D) str_l_3d one_half My->book Cpp••• oodbs tart$it line#pow••• aBc 3pai His.age while【1.4】下面各选项组中,均是C语言关键字的组是。
A) auto,enum,includeB) switch,typedef,continueC) signed,union,scanfD) if,struct,type【1.5】下列不属于C语言关键字的是。
A) defaultB) registerC) enumD) external【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。
A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置【1.7】下列关于C语言的叙述错误的是____A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义【1.8】在C语言中,错误的int类型的常数是。
A) 32768B) 0C) 037D) 0xAF【1.9】执行语句 printf("%x",-1);屏幕显示____。
A) -1B) 1C) -ffffD) ffff【1.10】已知 long i=32768;执行语句printf("%d",i);屏幕显示____。
A) -1B) -32768C) 1D) 32768【1.11】已知 long i=65539;执行语句printf("%d",i);屏幕显示____。
计算机等级考试二级C语言超级经典400道题及答案1、C语言程序的基本单位是____ A) 程序行 B) 语句 C) 函数 D) 字符、C、12、C语言程序的三种基本结构是____ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构、A、13、C语言规定,程序中各函数之间 A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用、A、14、C语言中可处理的文件类型是( ) A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件、B、15、C语言可执行程序的开始执行点是( ) A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数、C、16、C语言提供的合法的数据类型关键字是 A)double B) short C) integer D) char、B、17、C语言中,运算对象必须是整型数的运算符是 A) % B) \ C) %和\ D) * *、A、18、C语言中函数返回值的类型是由( )决定。
A) return语句中的表达式类型 B) 调用函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型、D、19、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为_____。
A、该数组的长度。
B、该数组的元素个数。
C、该数组中各元素的值。
D、该数组的首地址。
、D、110、C语言中数组下标的下限是________。
A、1 B、0 C、视具体情况 D、无固定下限、B、111、C语言中提供的合法关键字是____ A、swith B、cher C、case D、default、D、112、C语言中文件的存取方式是________。
模拟题二
一、选择
1.()是结构化程序设计应遵循的原则。
A.应使用顺序,选择,循环三种基本控制结构表示程序逻辑
B.为提高程序效率,应尽量使用Goto语句
C.根据需要可使用嵌套基本控制结构表示程序逻辑
D.选用的控制结构可有多个入口和一个出口
2.下列合法的浮点数的是().
A.123 B..65 C.E2 D.2E0.5
3.对应代数式3a÷(b+c),c语言的表达式是().
A.3*/b+c
B.3*a\(b+c)
C.3*a/(b+c)
D.3a/(b+c)
4.若已定义,int x=2,y=3;则执行语句y=x+++(--y);后,y的值为().
A.3 B.5 C.6 D.4
5.若已定义:double x=2.5;则求x的平方的正确的函数调用是().
A.pow(x,2)
B.sqrt(x)
C.exp(x)
D.rand(2,x)
6.下列当x的值在5至10之间为“假”,否则为“真”的逻辑表达式为().
A.!(5<=x && x<=10)
B.!(5<=x<=10)
C.x>=5 && x<=10
D.x<=5 && x>=10
7.若已定义:int x=11;double y=3.5;则表达式 y/2+x%2/2的值是().
A.1.5
B.1.0
C.3.5
D.1.75
8.若已定义int k;下列()语句与其他三条语句不等价.A.if(k==0)
printf(“Yes!\n”);
else
printf(“No!\n");
B.if(k==0)
printf("No!\n");
else
printf("Yes!\n");
C.if(k)
printf("Yes!\n");
else
printf("No!\n");
D.if(k!=0)
printf(“Yes!\n");
else
printf("No!\n");
9.下列程序段运行时,语句k+=2;执行的次数是().inti,k=0;
for(i=7;i>3;i--,i--)
k+=2;
A.4B.2C.3D.1
10.下列程序段的运行结果是().
inta[ ]={1,3,4,6,9},i,x=1;
for(i=0;i<3;i++)
x+=a[i+1];
printf(%d\n",x);
A.10B.15C.14D.9
11.对二维数组arr初始化正确的是().
A.int arr[][]={{1},{3,4,5}};
B.int arr[2][3]={{1,2},{3,4},{0}};
C.int arr[2][3]={{1,2},{3,4}};
D.int arr[2][]={1,2,3,4,5};
12.若已定义char stra[50],strb[50];能正确从键盘读入字符串的是().
A.scanf(“%s%s”,stra[50],strb[50]);
B.scanf(“%s%s”,stra,strb);
C.getch(stra,strb);
D.gets(strb,stra);
13..对于无返回值的自定义函数,在定义时最好使用()类型标识符.
A.int
B.long
C.float
D.void
14.下列程序的运行结果是().
#define M 5
#define N M+1
#define NN N*N-M
Void main( )
{ printf(“%d\n”,3*NN);
}
A.108
B.16
C.21
D.103
15.若已定义:int a[5]={1,2,3,4,5},*pa=a;下列叙述错误的是().
A.pa与a的值相等
B.a[2]与pa[2]的值相等
C.a++与pa++的作用相同 C。
*(pa+2)与a[2]的值相同
16.下列程序的运行结果是().
void main( )
{ char str[ ]=”abcd”, *p=str;
int i;
while(*p)
printf(“%c”,*(p++));
}
A.abc
B.bcd
C.abcd
D.cd
17.若已定义;
struct student
{
int num;
float score;
}stu[4];
以下错误的语句是().
A.*(stu)=*(stu+1); B.stu[0]->num=101;
C.printf(“%d”,(*stu).num);
D.stu[0]=stu[1];
18.若已定义:int a[3]={3,6,9},*p=a;则对数组元素a[1]错误引用的是().A.*p+1B.p[1]C.*(&a[1])D.*(a+1)
19.若已定义:intx=7,y=5;则表达式(x^y)<<2的值为().
A.1B.0C.20D.8
20.以下程序运行后,文件file1,txt的内容是().
#include <stdio.h>
Int main()
{
FILE *fp;
fp = fopen(“file1.txt”,”w“);
if(fp==NULL)
return 0;
else
{
fputs(“one”,fp);
rewind(fp);
fputs(“two”,fp);
fclose(fp);
return1;
}
}
A.one
B.one two
C.two one
D.two 二改错
三、填空
四、编程。