C语言初学者习题 (4)

合集下载

C语言基础练习题(含答案)

C语言基础练习题(含答案)

目录第1-3章C语言基础知识习题 (2)1 选择题 (2)2 填空题 (7)3 答案及部分解析 (9)第4章选择结构习题 (11)1 选择题 (11)2 填空题 (17)3 答案及部分解析 (23)第5章循环结构习题 (26)1 选择题 (26)2 填空题: (32)3 答案及部分解题分析 (39)第6章数组习题 (41)1. 单项选择题 (41)2. 填空题 (44)3. 判断题 (45)4. 程序填空题 (45)5. 阅读程序,分析程序的功能。

(49)第7章函数习题 (55)1. 单项选择题 (55)2. 填空题 (56)3. 判断题 (57)4. 程序填空题 (58)5. 写出下列程序运行结果 (59)第8章指针习题 (67)1 选择题 (67)2 填空题 (69)第1-3章C语言基础知识习题1 选择题1. 以下不是C语言的特点的是()。

A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。

A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。

A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。

A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。

A.\\ B.\0xAA C.\t D.\06.不属于C语言关键字的是()。

A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。

A.Float B.signed C.integer D.Char8.以下不能定义为用户标示符的是()。

A.scanf B.V oid C._3com_ D.int9.一个C程序是由()。

C语言理论基础考试习题

C语言理论基础考试习题

第一部分C语言理论基础(4) 结构化程序由三种基本结构组成,三种基本结构组成的算法A) 可以完成任何复杂的任务B) 只能完成部分复杂的任务C) 只能完成符合结构化的任务D) 只能完成一些简单的任务(7) 以下叙述中正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚,具有其他语言的一切优点第二部分C语言基本语法知识(2)以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(4)以下能正确定义且赋初值的语句是A)int n1=n2=10;B)char c=32;C)float f=f+1.1;D)double x=12.3E2.5;(5)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k>=k B)-k++ C)k%int(f) D)k>=f>=m(6)有以下程序段int k=0,a=1,b=2,c=3;k=a<b ? b:a; k=k>c ? c:k;执行该程序段后,k的值是A)3 B)2 C)1 D)0(8).以下不能定义为用户标识符的是A)MainB)_0C)_intD)sizeof(11)若整型变量a、b、c、d中的值依次为:1、4、3、2。

则条件表达式a<b?a:c<d?c:d的值A)1 B)2 C)3 D)4(15) 以下4组用户定义标识符中,全部合法的一组是A) _main B) If C) txt D) intenclude -max REAL k_2sin turbo 3COM _001(24)下列关于单目运算符++、--的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量D) 它们的运算对象可以是char型变量、int型变量和float 型变量(26) 以下选项中合法的用户标识符是A) long B) _2Test C) 3Dmax D) A.dat(27) 以下非法的赋值语句是A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;(28) 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是A)6.500000B)6C) 5.500000D) 6.000000(33) 以下选项中不属于C语言的类型的是A) signed short intB) unsigned long intC) unsigned intD) long short(34) 以下叙述正确的是A) 可以把define和if定义为用户标识符B) 可以把define定义为用户标识符,但不能把if定义为用户标识符C) 可以把if定义为用户标识符,但不能把define定义为用户标识符D) define和if都不能定义为用户标识符(35) 在C语言中,合法的长整型常数是A) 0LB) 4962710C) 324562&D) 216D(37) 假定x和y为double型,则表达式x=2,y=x+3/2的值是A) 3.500000B) 3C) 2.000000D) 3.000000(38) 以下合法的赋值语句是A) x=y=100B) d--;C) x+y;D) c=int(a+b);(40) 以下程序的输出结果是main(){ int a=3;printf(“%d\n”,(a+a-=a*a) );}A) –6B)12C) 0D) –12(41) 以下所列的C语言常量中,错误的是A) 0xFFB) 1.2e0.5C) 2LD) ‘\72’(42) 下列选项中,合法的C语言关键字是A) VARB) cherC) integerD) default(47) 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是A) 1 B) 2 C) 2.0 D) 2.5(48) 若变量a、iI已正确定义,且i已正确赋值,合法的语句是A) a==1 B) ++i; C) a=a++=5; D) a=int(i); (49) 若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是A) 0 B) 0.5 C) 1 D) 2(50) 设有int x=11; 则表达式(x++ * 1/3) 的值是A) 3 B) 4 C) 11 D) 12(51) 下列程序的输出结果是A) 3 B) 3.2 C) 0 D) 3.07main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d \n", d*y);}(52) 下列变量定义中合法的是A) short _a=1-.le-1;B) double b=1+5e2.5;C) long do=0xfdaL;D) float 2_and=1-e-3;(53) 以下选项中属于C语言的数据类型是A) 复数型B) 逻辑型C) 双精度型D) 集合型(62) C语言提供的合法的数据类型关键字是A) Double B) short C) integer D) Char(73) C语言程序的基本单位是A) 程序行B) 语句C) 函数 D) 字符(5) 设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:a*=16+(b++)-(++c);后,a的值是【5】。

C语言习题 (4)

C语言习题 (4)
表达式 表达式运算后的值
a+b>c && b==c
!(a>b) && !c || 1
!(a+b) + c –1 && b + c/2
4.写出数学式子 的C语言表达式 。
5.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式 。
a=(--y=x++) ? –y : ++x ;
b=y++ ; c=x ;
printf(“%d,%d,%d”,a,b,c);
}
A)6,9,7 B)6,9,6 C)7,9,6 D )7,9,7
16.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是 。
5.C语言对嵌套if语句的规定是:else总是与 。
A)其之前最近的if配对 B)第一个if配对
C)缩进位置相同的if配对 D)其之前最近的且尚未配对的if配对
6.设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为 。
A)1 B)2 C)3 D)4
7.下面 是错误的if语句(设int x,a,b;)
A)if (a=b) x++; B)if (a=<b) x++;
C)if (a-b) x++; D)if ( x ) x++;
下程序片段 。
main ( )
二.填空题
1.C语言提供6种关系运算符,按优先级高低它们分别是 , , , , , 等。

c语言习题哟4

c语言习题哟4
}
(A) 2 (B) 3 (C)4 (D)5
&gt;&gt;&gt;
&lt;&lt;&lt;
4,3
B
表达式2&lt;3&amp;&amp;8&lt;=(a=10)的结果是______。
(A) 0
(B) 1
(C) False
(D) True
{x=x+y ; printf (&quot;%f &quot;, x);}; { x=x+y ; printf (&quot;%f&quot;, x)}
else printf (&quot;%f&quot;, -x) ; else printf (&quot;%f&quot;, -x);
(C) ####**** (D) 有语法错误, 无输出结果
&gt;&gt;&gt;
&lt;&lt;&lt;
4,2
A
若变量都已正确说明,则以下程序段输出为______。
int a=2,b=1,c,d;
if (a==b) c=d=a;
else c=b;
{ x=x+y; printf (&quot;%f &quot;, x);} else printf (&quot;%f&quot;,-x);
else printf (&quot;%f &quot;, -x);
(C) if (x&gt;0) (D) if(x&gt;0)

C语言复习题4

C语言复习题4

第8章函数单选题:1、下列程序执行后输出的结果是#include 〈stdio.h〉f(int a){ int b=0;int c=3;a=c+ +,b+ +;return(a);}main( ){ int a=2,i,k;for(i=0;i〈2;i+ +)k=f(a+ +);printf("%d\n",k);}A.3B.0C.1D.4学生答案: A参考答案: A2、在一个C源程序文件中,若要定义一个只允许本源文件中所用的函数的全局变量,则变量需要使用的存储类别是____A.AutoB.staticC.registerD.extern学生答案: C参考答案: B3、下面程序的输出是int m=13;int fun2(int x,int y){ int m=3;return(x*y-m);}main(){ int a=7,b=5;printf("%d\n",fun2(a,b)/m);}B.2C.7D.10学生答案: B参考答案: B4、以下程序运行后,输出结果是func(int a,int b){ static int m=0,i=2;i+=m+1;m=i+a+breturn(m);}main(){ int k=4,m=1,p;p=func(k,m);printf("%d\n",p);p=func(k,m);printf("%d\n",p);}A.8,15B.8,16C.8,17D.8,8学生答案:参考答案: C5、以下程序的输出结果是int d=1;fun(int p){ d = d+p;printf("%d ",d);return(d);}main( ){int a=3;printf("%d \n",fun(a+fun(d)));}A. 2 6B. 1 7 7C. 2 7 7学生答案: C参考答案: C6、C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是____.A.单纯值传递B.单纯地址传递C.值传递和地址传递都有可能D.由实参传给形参,然后由形参传回给实参,即是双向传递学生答案: B参考答案: A7、下列说法正确的是________.A.调用函数时,实参与形参可以共用内存单元B.调用函数时,实参的个数、类型和顺序与形参可以不一致C.调用函数时形参可以是表达式D.调用函数时,将为形参分配内存单元学生答案: D参考答案: D8、C语言程序由函数组成。

C语言习题4

C语言习题4

第五章选择结构程序设计5.1 选择题【题5.1】逻辑运算符两侧运算对象的数据类型。

A)只能是0或1B)只能是0或非0正数C)只能是整型或字符型数据D)可以是任何类型的数据【题5.2】以下关于运算符优先顺序的描述中正确的是。

A)关系运算符<算术运算符<赋值运算符<逻辑与运算符B)逻辑与运算符<关系运算符<算术运算符<赋值运算符C)赋值运算符<逻辑与运算符<关系运算符<算术运算符D)算术运算符<关系运算符<赋值运算符<逻辑与运算符【题5.3】下列运算符中优先级最高的是。

A)< B)+ C)&& D)!=【题5.4】能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是。

A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B)(x>=1)||(x<=10)||(x>=200)||(x<=210)C)(x>=1)&&(x<=10)||(x>=200)&&(x<=210)D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)【题5.5////////Xa b cA)(x<=a)&&(x>=b)&&(x<=c)B)(x<=a)||(b<=x<=c)C)(x<=a)||(x>=b)&&(x<=c)D)(x<=a)&&(b<=x<=c)【题5.6】判断char型变量ch是否为大写字母的正确表达式是。

A)‘A’<=ch<=‘Z’B)(ch>=‘A’)&(ch<=‘Z’)C)(ch>=‘A’)&&(ch<=‘Z’) D)(‘A’<=ch)AND(‘Z’>=ch)【题5.7】设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是。

C语言练习题4

一、单项选择题(共20小题;每小题1分,共20分)
1、一个C语言程序由()组成。

A.子程序B.过程C.函数D.主程序
2、若以下选项中的变量已正确定义,则正确的赋值语句是()。

A.x1=26.8%3 B.1+2=x2 C.x3=0x12 D.x4=1+2=3;
3、以下符合C语言语法的实型常量是()。

A.1.2E0.5 B.3.14159E C.E15 D.0.5E-3
4、以下不能正确表示代数式2ab/(cd) 的C语言表达式是()。

A.2*a*b/c/d B.a*b/c/d*2 C.a/c/d*b*2 D.2*a*b/c*d
5、设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A.k++ B.k+=1 C.++k D.k+1
6、若有以下函数首部int fun(double x[10],int *n)则下面针对此函数声明语句中正确
的是()。

A.int fun(double x,int *n); B.int fun(double ,int);
C.int fun(double*x,int n); D.int fun(double *,int*);
7、若i为整型变量,则以下循环体执行次数是()。

for(i=2;i==0;) printf("%d",i--);
A.无限次 B. 0次 C. 1次 D. 2次
南京工程学院试卷共8 页第2 页
南京工程学院试卷共8页第6 页。

C语言习题四选择结构程序设计

习题四选择结构程序设计1. 设变量x和y均已正确定义并赋值。

以下if语句中,在编译时将产生错误信息的是______。

A、if(x++);B、if(x>y && y!=0);C、if(x>0) x--D、if(y<0) {;}else y++; else x++;解析:本题考查的是if语句。

if后表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。

选项A和B是在表达式后跟了一条空语句,选项D是在表达式后跟了一组空语句,选项C中x--是表达式而不是语句,所以在编译时会出现错误信息。

故本题答案选C。

2. 有以下程序main(){ int i;for(i=1;i<=40;i++){ if(i++%5==0)if(++i%8==0) printf ("%d",i);}printf("\n"); }执行后的输出结果是______。

A、5B、24C、32D、40解析:本题考查的是if语句的应用。

在满足for 语句条件下,第一个if语句的条件是指i先对5取余后,再自行加1;第二个if语句的条件是指:i=i+1后,再对8取余。

故本题答案选C。

3. 在嵌套使用if语句时,C语言规定else总是______。

A、和之前与其具有相同缩进位置的if配对B、和之前与其最近的if配对C、和之前与其最近的且不带else的if配对D、和之前的第一个if配对解析:本题考查的是if语句的使用规则。

在嵌套使用if语句时,C语言规定else总是和之前与其最近的且不带else的if配对。

故本题答案为C。

4. 有以下程序main(){ int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k); }程序运行后的输出结果是______。

C语言习题4

习题4
1、 单选题 1. 逻辑运算符两侧运算对象的数据类型是( )。 A.只能是0或1 B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据 2. 选择出合法的if语句(设int x,a,b,c;)( )。 A.if(a=b) x++; B.if(a=<b) x++; C.if(a<>b) x++; D.if(a=>b) x++; 3. 能正确表示“当x的取值在[l,10]或[200,210]范围内为真,否则 为假”的表达式是( )。 A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B.(x>=1)||(x<=10)||(x>=200)||(x<=210) C.(x>=1)&&(x<=l0)||(x>=200)&&(x<=210) D.(x>=1)||(x<=10)&&(x>=200)||(x<=210) 4. 判断char型变量ch是否为大写字母的正确表达式是( )。 A. 'A'<=ch<='Z' B.(ch>='A')&(ch<='Z') C.(ch>='A')&&(ch<='Z') D.( 'A'<=ch)AND('Z'>=ch) 5. 为了避免在嵌套的条件语句 if - else 中产生二义性,C语言规定: else子句总是与( )配对。 A. 缩排位置相同的if B. 同层之前最近的if C. 同层其之后最近的if D. 同一行上的 6. 下列运算符中,不属于关系运算符的是( )。 A. < B. >= C. == D. ! 7. 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数 时,表达式的值为“假”。则以下不能满足要求的表达式是( )。 A.A%2==1 B.!( A%2==0) C.!(A%2) D.A%2 8. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果 是( )。 #include<stdio.h> void main() { int x; scanf("%d", &x);

c语言编程题入门题库及详解答案

c语言编程题入门题库及详解答案C语言编程题入门题库及详解答案1. 编写一个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;}```2. 编写一个C程序,实现输入一个字符,判断它是大写字母、小写字母还是其他字符。

```c#include <stdio.h>int main() {char ch;printf("请输入一个字符:");scanf("%c", &ch);if (ch >= 'A' && ch <= 'Z') {printf("这是一个大写字母。

\n");} else if (ch >= 'a' && ch <= 'z') {printf("这是一个小写字母。

\n");} else {printf("这不是字母。

\n");}return 0;}```3. 编写一个C程序,实现输入三个整数,找出最大值并输出。

```c#include <stdio.h>int main() {int a, b, c, max;printf("请输入三个整数:");scanf("%d %d %d", &a, &b, &c);max = a;if (b > max) max = b;if (c > max) max = c;printf("最大值是:%d\n", max);return 0;}```4. 编写一个C程序,实现输入一个整数,判断它是否为素数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六 函数的使用
实验目的: 1、熟悉函数的定义、声明及使用,能利用函数解决一些基本问题; 2、继续熟悉数组、字符串的使用,能用基本算法解决问题。
1、Fibonacci 数的后 9 位 Fibonacci 数列定义如下:f(0)=1, f(1)=1,f(n)=f(n-1)+f(n-2), 当 n>=2 时给出 n,求出 f(n)的后 9 位并输出, 不足 9 位,请在前面补 0。 有多组测试数据。每一组测试数据只有一行,为整数 n。0<=n<300。对应每组输入,输出一行结果。该行 不能有其它多余的符号。 2 000000002 150 907386349 #include <stdio.h> int main() { int i,n,f0,f1,f; freopen("1.in","r",stdin); freopen("1.out","w",stdout); while(scanf("%d",&n)==1) { f0=f1=f=1; for(i=2;i<=n;i++) { f=(f0+f1)%1000000000; f0=f1; f1=f; } printf("%09d\n",f); } return 0; } 2、质因子分解 读入一个自然数,将 n 分解为质因子连乘的形式输出。 有多组测试数据。输入的第一行是整数 T(0<T<=10000) ,表示测试数据的组数。每一组测试数据只有一 行,包含待分解的自然数 n。该行没有其它多余的符号。1<n<2^31。对应每组输入,输出一行分解结果, 具体样式参看样例。该行不能有其它多余的符号。 3 756=2*2*3*3*3*7 756 2=2 2 2093333998=2*7*7*17*43*29221 2093333998 #include <stdio.h> #include <math.h> #define N 70000 int p[N]={0}; int prime[10000],pn; void primes() { int i,k,n; k=1; n=int(sqrt(N))+2; p[0]=p[1]=1; while(++k<n) { for(;(k<n) && (p[k]==1);k++);//找到下一个素数 if(k<n) for(i=k*k;i<N;i+=k) p[i]=1;//把素数的倍数筛掉 }//循环完后,数组中为 0 的元素下标代表的数即为素数
struct friend a[20]; freopen("1.in","r",stdin); freopen("1.out","w",stdout); scanf("%d %d %d %d",&n,&d1,&d2,&f); if(f==0) sprintf(ch,"%%-%ds%%-%dd\n",d1,d2); else sprintf(ch,"%%%ds%%%dd\n",d1,d2); getchar(); for(i=0;i<n;i++) scanf("%s%d",a[i].name,&a[i].age); for(i=0;i<n;i++) printf(ch,a[i].name,a[i].age); return 0; } 4、Fly Through The home of flower fairies is being devastated by a monster called Littlefatcat. They have to leave the place where their generations lived with no other choices. CC, the greatest investigator of flower fairies, found a paradise in the west and will lead all the flower fairies there. This paradise is full of flowers and safe from attack of Littlefatcat. However, there are lots of huge rocks on the way <N;i++) if(p[i]==0) prime[pn++]=i; } int main() { int i,a,b,k,s,T; freopen("1.in","r",stdin); freopen("1.out","w",stdout); primes(); scanf("%d",&T); while(T--) { scanf("%d",&a); b=a;//保存一个备份 k=int(sqrt(a))+2; i=0;//素数表下标 s=0;//输出的质因子个数 printf("%d=",a); while(prime[i]<k) { if(a%prime[i]==0) { a/=prime[i]; s++; if(s==1) printf("%d",prime[i]); else printf("*%d",prime[i]); } else i++; } if(s==0) printf("%d",b); else if(a>1) printf("*%d",a); printf("\n"); } return 0; } 3、我的格式我作主 小 P 刚刚学 C 语言,感觉非常有趣,他希望能把朋友的信息按自己希望的格式输出,你能帮帮他吗?(本 题要求用结构体存储读入的数据) 输入的第一行是四个整数 n、d1、d2、f,表示随后有 n 行数据、第一列数据输出宽度为 d1,第二列输出宽 度为 d2,f 为 0 表示数据左对齐,否则右对齐。下面 n 行的每一行开始是一个不含空格的字符串,随后是 一个空格,空格后是一个整数。字符串的长度不超过 20,整数的大小不超过整型数据的存储范围。1<n<20, 0<=d1,d2<=40。输出有 n 行,对应读入的 n 行数据。 2281 abc 123 abc 123 asdfgh 8760 asdfgh 8760 #include <stdio.h> struct friend { char name[21]; int age; }; int main() { char ch[100]; int i,n,d1,d2,f;
相关文档
最新文档