计算机二级c语言自增 自减习题
- 格式:doc
- 大小:31.00 KB
- 文档页数:2
c语言自增自减运算例题自增和自减运算是C语言中常用的运算符,用于对变量进行加一或减一操作。
下面是一些关于自增和自减运算的例题,我将从多个角度进行回答。
1. 自增运算符(++)的使用:c.#include <stdio.h>。
int main() {。
int a = 5;printf("a = %d\n", a); // 输出,a = 5。
a++; // 自增操作。
printf("a = %d\n", a); // 输出,a = 6。
return 0;}。
在这个例子中,我们定义了一个整数变量a,并初始化为5。
然后使用自增运算符对a进行加一操作,最后输出a的值。
执行自增运算后,a的值变为6。
2. 自减运算符(--)的使用:c.#include <stdio.h>。
int main() {。
int b = 8;printf("b = %d\n", b); // 输出,b = 8。
b--; // 自减操作。
printf("b = %d\n", b); // 输出,b = 7。
return 0;}。
在这个例子中,我们定义了一个整数变量b,并初始化为8。
然后使用自减运算符对b进行减一操作,最后输出b的值。
执行自减运算后,b的值变为7。
3. 自增运算符的前缀和后缀形式:c.#include <stdio.h>。
int main() {。
int c = 3;int d = 3;printf("c = %d\n", c++); // 输出,c = 3。
printf("c = %d\n", c); // 输出,c = 4。
printf("d = %d\n", ++d); // 输出,d = 4。
printf("d = %d\n", d); // 输出,d = 4。
计算机二级c语言考试真题及答案详解一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0x12.3C. 0x12LD. 0x12.3L答案:A2. 若有定义int a=1, b=2;,则以下哪个表达式的值不为真?A. a<bB. a<=bC. a>bD. a!=b答案:C3. 在C语言中,以下哪个选项是合法的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. "Hello, World\0"答案:A4. 下列哪个函数不能正确计算数组元素的总和?A. sum = 0; for(i=0; i<n; i++) sum += array[i];B. sum = 0; for(i=0; i<n; i++) sum = sum + array[i];C. sum = 0; for(i=0; i<n; i++) sum = array[i];D. sum = 0; for(i=0; i<n; i++) sum += array[i];答案:C5. 在C语言中,以下哪个选项是合法的函数声明?A. int add(int, int);B. int add();C. int add(int a, int b);D. int add(a, b);答案:C6. 若有定义int a[10];,则以下哪个表达式是合法的数组元素访问?A. a[10]B. a[-1]C. a[3.5]D. a[3]答案:D7. 在C语言中,以下哪个选项是合法的指针声明?A. int *ptr;B. int *ptr[];C. int ptr*;D. int ptr[];答案:A8. 若有定义int x=10;,则以下哪个表达式是合法的赋值语句?A. x = x + 1;B. x = 1 + x;C. x = x++;D. x = ++x;答案:A9. 在C语言中,以下哪个选项是合法的循环语句?A. for(;;)B. while(1)C. do {} while(0)D. for(;;) {}答案:D10. 若有定义int a[5] = {1, 2, 3, 4, 5};,则以下哪个表达式是合法的数组元素访问?A. a[5]B. a[-1]C. a[2.5]D. a[2]答案:D11. 在C语言中,以下哪个选项是合法的switch语句?A. switch(x) { case 1: break; }B. switch(x) { default: break; }C. switch(x) { case 1: case 2: break; }D. switch(x) { case 1: default: break; }答案:C12. 若有定义int x=5;,则以下哪个表达式是合法的自增运算?A. x++;B. ++x;C. x--;D. --x;答案:A13. 在C语言中,以下哪个选项是合法的函数原型声明?A. void func();B. int func(int);C. void func(int a);D. All of the above答案:D14. 若有定义int a=3;,则以下哪个表达式是合法的位运算?A. a & 2B. a | 2C. a ^ 2D. All of the above答案:D15. 在C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI 3.14159fC. #define PI 3.14159LD. All of the above答案:A二、编程题(每题30分,共60分)1. 编写一个函数,计算并返回一个整数数组中所有元素的和。
二级C语言笔试-148(总分:66.00,做题时间:90分钟)一、选择题(总题数:40,分数:40.00)1.有以下程序#include <stdio.h>main0int y=9;for( ;y>0;y--)if(y%3==0) printf("%d",--y);程序的运行结果是(分数:1.00)A.741B.963C.852 √D.875421解析:[解析] 本题考查变量的自加“++”和自减“--”问题。
当y的值为9、6或3时,if语句的条件成立,执行输出语句,输出表达式--y的值,y的自减要先于输出语句执行,故输出结果为8 5 2。
2.下面程序的输出结果是#include<stdio.h>main()int a[]=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf("%d/n",*p+9);(分数:1.00)A.0B.1C.10 √D.9解析:[解析] 此题考查了指针引用一维数组元素的方法。
*p+9因为运算符“*”的优先级高于“+”,所以输出结果为p指向的元素1,然后加9,值为10。
3.下列叙述中正确的是(分数:1.00)A.程序执行的效率与数据的存储结构密切相关√B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对解析:[解析] 程序执行的效率与很多因素有关,如数据的存储结构、程序所处理的数据量、程序所采用的算法等。
顺序存储结构在数据插入和删除操作上的效率比链式存储结构的效率低。
4.有以下程序#include <stdio.h>main()int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf("%d/n",m);程序的运行结果是(分数:1.00)A.0B.1 √C.2D.3解析:[解析] 本题考查循环语句的嵌套以及条件的判断问题。
第六套1.树是结点的集合,它的根结点数目是( )A.有且只有1B.1或多于1C.0或1D.至少2分析:树是一个或多个结点组成的有限集合,其中一个特定的结点称为根,其余结点分为若干个不相交的集合。
每个集合同时又时一棵树。
树有且只有1个根结点。
2.在设计程序时,应采纳的原则之一是( )A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解分析:滥用goto语句将使程序流程无规律,可读性差,因此A)不选;注解行有利于对程序的理解,不应减少或取消,B)也不选;程序的长短要依照实际情况而论,而不是越短越好,C)也不选。
3.下列叙述中,不属于软件需求规格说明书的作用的是( )A.便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C.作为确认测试和验收的依据D.便于开发人员进行需求分析分析:软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。
它有以下几个方面的作用:①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。
4.单个用户使用的数据视图的描述称为( )A.外模式B.概念模式C.内模式D.存储模式分析:选项A正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项D)不正确,存储模式为内模式。
5.SQL语言又称为( )A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言分析:结构化查询语言(Structured Query Language,简称SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。
说明:1、原先的少部分题目有错,请用红色的部分替换掉;2、如果红色部分有文字“删除该行”,就直接删除该行;第一章C语言的基础知识第一节对C语言的初步认识习题1. 下列叙述中错误的是BA)任何一个C程序都必须有且仅有一个main函数,C语言总是从main函数开始执行。
B)C语言中的变量,可以先使用后定义。
C)所有的C语言语句最后都必须有一个分号D)C程序书写格式自由,语句可以从任一列开始书写,一行内可以写多个语句。
第二节熟悉Visual C++习题1. C语言源程序名的后缀是 BA).exe B).c C).obj D).cp 2. 下列叙述中错误的是DA)计算机不能直接执行用C语言编写的源程序B)C程序经C编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行3. 用C语言编写的代码程序BA)可立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行第三节标识符习题1. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是BA)大写字母B)连接符C)数字字符D)下划线2. 以下选项中不合法的标识符是 CA)print B)FOR C)&a D)_003. 以下叙述中错误的是AA)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识4. 可在C程序中用作用户标识符的一组标识符是AA)and B)Date C)HiD)case_2007 y-m-d Dr.TomBigl5. 以下不合法的用户标识符是CA)j2_KEY B)Double C)4d D)_8_6. 以下不能定义为用户标识符的是DA)Main B)_0 C)_int D)sizeof7. 下列选项中,不能用作标识符的是DA)_1234_ B)_1_2 C)int_2_ D)2_int_8. 以下4组用户定义标识符中,全部合法的一组是AA)_main B)If C)txt D)intenclude -max REAL k_2sin turbo 3COM _001第四节数制转换习题1.十进制整数360的八进制为__________,十六进制为_____________。
全国计算二级考试c语言试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. doubleD. string答案:D3. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C4. 若有定义:int a=5;,则执行语句a+=a-=a*a;后,变量a的值是多少?A. -20B. 0C. 5D. 10答案:A5. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A6. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. _variableD. variable-name答案:B7. 在C语言中,以下哪个关键字用于声明一个函数?A. structB. voidC. functionD. int答案:D8. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. unionC. structD. typedef答案:A9. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A10. 若有定义:char a[5]="abcd";,则执行语句strcat(a,"e");后,数组a的值是什么?A. "abcde"B. "abcde\0"C. "abcd"D. "abcde"答案:D二、填空题(每题2分,共10分)1. 在C语言中,定义一个整型数组可以使用语法:intarray_name[10];,其中10表示数组的______。
考研程序设计复习题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.以下程序运行后的输出结果是______。
自增自减
1、下列关于单目运算符++、--的叙述中正确的是
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D)它们的运算对象可以是char型变量、int型变量和float型变量
2、设有以下定义
int a=0;
double b=1.25;
char c=’A’;
#define d 2
则下面语句中错误的是
A) a++; B) b++; C) c++; D) d++;
3、以下选项中,与k=n++完全等价的表达式是
A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1
4、设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是
printf("%d,%d\n",x--,--y);
A) 10,3 B) 9,3 C) 9,2 D)10,2
5、设有 int x=11; 则表达式 (x++ * 1/3) 的值是
A) 3 B) 4 C) 11 D) 12
6、以下程序的输出结果是。
#include
main()
{int i=010 ,j = 10;
printf("%d,%d\n",+ +i , j - -); }
A) 11,10 B) 9,10 C) 010,9 D) 10,9
7、有以下程序
main()
{int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是
A)12353514 B)12353513
C)12343514 D)12343513
8、有以下程序
main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是
A) 3 B) 5 C) -1 D) -2
9、设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:
a*=16+(b++)-(++c);后,a的值是
知识点
++ -- 只能用于变量,不能用于常量和表达式,如5++,(a+b)++,(-i)++ 都是错误的
结合方向:自右向左。
-i++ 默认的是i++先结合,等价于 -(i++)
i++ 先用后加当前表达式中使用i原来的值运算,使用完以后再使i自增1,程序中第二次遇到i时就要使用增1以后的值了。
++i 先加后用先使变量i自增1,然后再参加当前表达式的运算,程序中第二次遇到i时也是使用增1以后的值。
答案
1--5、DDADA 6--8、BAD 9、28。